homebridge-config-ui-x 5.3.1-beta.2 → 5.3.1-beta.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/package.json +2 -2
  3. package/public/{chunk-FDLD6PXT.js → chunk-2ASTUC2A.js} +1 -1
  4. package/public/{chunk-LLUK2BKI.js → chunk-2HWQ6KHG.js} +1 -1
  5. package/public/{chunk-TGNWWUX2.js → chunk-4A6CSL44.js} +1 -1
  6. package/public/{chunk-BSPKLFZ5.js → chunk-4BT5P3S7.js} +1 -1
  7. package/public/{chunk-ZUJKHS4Z.js → chunk-5IPBGNDT.js} +1 -1
  8. package/public/{chunk-ZSSKZOCU.js → chunk-5TBYRNZA.js} +1 -1
  9. package/public/{chunk-XMU54Z4I.js → chunk-6CY62H2P.js} +1 -1
  10. package/public/{chunk-RUGXAJFG.js → chunk-6EUBYKAI.js} +1 -1
  11. package/public/chunk-7S6NJPZX.js +1 -0
  12. package/public/{chunk-FBUMZH3M.js → chunk-AYVCO42T.js} +1 -1
  13. package/public/{chunk-RRLXIJI2.js → chunk-BRUCYG2A.js} +1 -1
  14. package/public/{chunk-EB55AKA5.js → chunk-CKNC2W6H.js} +1 -1
  15. package/public/{chunk-MFAGY6KM.js → chunk-CVHFTW22.js} +1 -1
  16. package/public/{chunk-AZGZHQ6H.js → chunk-CVPELF37.js} +1 -1
  17. package/public/{chunk-3T5DWLEU.js → chunk-D4D2Q75G.js} +1 -1
  18. package/public/{chunk-NBH3OPPF.js → chunk-DJNIOQBD.js} +1 -1
  19. package/public/{chunk-HWLFFU24.js → chunk-EP3VWHAS.js} +1 -1
  20. package/public/{chunk-C2H4WU7E.js → chunk-EQU6N7DX.js} +1 -1
  21. package/public/{chunk-E3QJRRZX.js → chunk-G5E3635E.js} +1 -1
  22. package/public/{chunk-QWFWYENA.js → chunk-I54LK3RD.js} +1 -1
  23. package/public/{chunk-6KU2OSFL.js → chunk-ICIDM6VK.js} +1 -1
  24. package/public/{chunk-TU6EJB5I.js → chunk-IMMVMDI5.js} +1 -1
  25. package/public/{chunk-LTNHCFVE.js → chunk-JHAV43H4.js} +1 -1
  26. package/public/{chunk-RMZGW2GZ.js → chunk-K47XJRH6.js} +1 -1
  27. package/public/{chunk-JTGQF57R.js → chunk-KJJ3NDBI.js} +1 -1
  28. package/public/{chunk-UBUPCIG7.js → chunk-KKFRJVVW.js} +1 -1
  29. package/public/{chunk-FUQWPOJU.js → chunk-LSB7AK6L.js} +1 -1
  30. package/public/{chunk-GUMW23NO.js → chunk-M46HRPAE.js} +1 -1
  31. package/public/{chunk-SBRL5MLD.js → chunk-MJX7JEFB.js} +1 -1
  32. package/public/{chunk-CTBYEKWZ.js → chunk-MMQQ4QC6.js} +1 -1
  33. package/public/{chunk-MEUQDXB4.js → chunk-MSD72HAO.js} +1 -1
  34. package/public/{chunk-UORORZRF.js → chunk-N4463S2N.js} +1 -1
  35. package/public/{chunk-LDDVDB32.js → chunk-NRIJDIAG.js} +1 -1
  36. package/public/{chunk-QOUFFCXD.js → chunk-OLEYYRXK.js} +1 -1
  37. package/public/{chunk-VZRW6ATJ.js → chunk-ONXM2HKU.js} +1 -1
  38. package/public/{chunk-ZHHBQLMW.js → chunk-QUEVYPDC.js} +1 -1
  39. package/public/{chunk-7MIPVXLJ.js → chunk-SAV5QYWS.js} +1 -1
  40. package/public/{chunk-MG3W55EH.js → chunk-TOTCACPH.js} +1 -1
  41. package/public/{chunk-57GCR4EG.js → chunk-UIEQEFJD.js} +1 -1
  42. package/public/{chunk-WX2DXDQP.js → chunk-ULKIQVJV.js} +2 -2
  43. package/public/{chunk-GXKYHQPV.js → chunk-V5BFAMW2.js} +1 -1
  44. package/public/chunk-VKNQ2GJV.js +4 -0
  45. package/public/chunk-VZCAAS2X.js +1 -0
  46. package/public/{chunk-2SFFQU7E.js → chunk-X2DAYGMB.js} +1 -1
  47. package/public/{chunk-Y2WR3DTD.js → chunk-XW7XVGOY.js} +1 -1
  48. package/public/{chunk-M5NQ4PPK.js → chunk-YHQD7CVV.js} +1 -1
  49. package/public/{chunk-VW3OPYPI.js → chunk-YRUIIXOW.js} +1 -1
  50. package/public/index.html +1 -1
  51. package/public/main-N6VJJRX6.js +1 -0
  52. package/public/chunk-5CJVTJIE.js +0 -1
  53. package/public/chunk-B24CHCYQ.js +0 -4
  54. package/public/chunk-PYHGTQGK.js +0 -1
  55. package/public/main-JC5QHSTM.js +0 -1
@@ -1,4 +1,4 @@
1
- import{a as Mp}from"./chunk-CTBYEKWZ.js";import{a as tl,c as Ep,d as Pp,e as Vn,f as si,g as Xx}from"./chunk-UBUPCIG7.js";import{a as Cp}from"./chunk-F3MG6UU6.js";import{a as $p}from"./chunk-AKD24HZC.js";import{a as kp}from"./chunk-7MIPVXLJ.js";import{a as wp,b as Ip,c as Sp}from"./chunk-H337OZRD.js";import{a as $r}from"./chunk-IMT3YYMD.js";import{a as Tp}from"./chunk-UKEZ5GGN.js";import{a as pa,b as ha}from"./chunk-RPRM66DV.js";import{a as fa,b as ma}from"./chunk-S7AIVWKK.js";import{a as xp}from"./chunk-3T4CLJZB.js";import{a as aa,b as sa,c as la,d as ua,e as ca,f as da,g as qn,m as je,n as et,o as gp,p as _p,q as yp,r as bp,s as vp,t as jn}from"./chunk-MJK6N6PA.js";import{A as Sr,a as lp,b as Fi,c as An,e as bt,f as up,h as cp,i as dp,j as pp,k as fp,l as qi,m as mp,o as ji,r as Fn,s as cn,t as dn,y as hp,z as Gt}from"./chunk-VPU5FNT3.js";import{a as Bi}from"./chunk-RMZGW2GZ.js";import{d as ai}from"./chunk-25NXLXGL.js";import{b as Be}from"./chunk-LLUK2BKI.js";import{k as we,m as Vi,n as ve}from"./chunk-5CJVTJIE.js";import{a as xe,b as Ve}from"./chunk-CPAHENLQ.js";import{e as sp}from"./chunk-RJOGO4M5.js";import{$a as Yd,Ac as np,Bc as rp,Ca as ki,Cc as Te,D as Wd,Da as Xd,Dc as Kt,Ec as ln,Fa as On,Fc as Ft,Gc as Nn,Hb as G,Hc as w,Ib as E,Ic as S,Jb as P,Jc as Ue,Lb as dt,M as kn,Mb as pt,Nb as ft,Ob as b,Pb as f,Qb as m,Qc as mt,Rb as $,Rc as z,Sb as ri,Sc as Ai,Tb as oi,Ub as an,Uc as op,Vb as ep,Wb as tp,Xa as he,Z as Ys,_b as H,a as X,aa as Ir,ab as d,b as $e,bc as j,cc as Mi,dc as _,e as g,fa as Kd,fb as ia,g as Me,ga as Tt,gb as hi,h as K,ha as Mn,hc as Qs,ib as rn,ic as Zs,id as qt,ja as Gd,jc as el,jd as un,k as Ld,ka as Jd,kc as Oi,kd as ht,la as k,lc as Di,mb as Q,mc as ip,n as Pt,nb as Dn,nc as Wt,o as Xs,ob as on,oc as Ni,pb as Qd,pc as Y,q as Ud,qc as C,ra as F,rc as L,rd as oa,sa as q,sb as le,sc as B,tc as sn,ub as Zd,uc as ra,v as zd,vb as na,w as ce,x as Hd,xc as Oe,yc as De,za as ta,zc as Ne,zd as ap}from"./chunk-WEVBEUAJ.js";var Tr=g(be=>{"use strict";Object.defineProperty(be,"__esModule",{value:!0});be.regexpCode=be.getEsmExportName=be.getProperty=be.safeStringify=be.stringify=be.strConcat=be.addCodeArg=be.str=be._=be.nil=be._Code=be.Name=be.IDENTIFIER=be._CodeOrName=void 0;var Er=class{};be._CodeOrName=Er;be.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;var pn=class extends Er{constructor(i){if(super(),!be.IDENTIFIER.test(i))throw new Error("CodeGen: name must be a valid identifier");this.str=i}toString(){return this.str}emptyStr(){return!1}get names(){return{[this.str]:1}}};be.Name=pn;var jt=class extends Er{constructor(i){super(),this._items=typeof i=="string"?[i]:i}toString(){return this.str}emptyStr(){if(this._items.length>1)return!1;let i=this._items[0];return i===""||i==='""'}get str(){var i;return(i=this._str)!==null&&i!==void 0?i:this._str=this._items.reduce((t,n)=>`${t}${n}`,"")}get names(){var i;return(i=this._names)!==null&&i!==void 0?i:this._names=this._items.reduce((t,n)=>(n instanceof pn&&(t[n.str]=(t[n.str]||0)+1),t),{})}};be._Code=jt;be.nil=new jt("");function Op(e,...i){let t=[e[0]],n=0;for(;n<i.length;)nl(t,i[n]),t.push(e[++n]);return new jt(t)}be._=Op;var il=new jt("+");function Dp(e,...i){let t=[Pr(e[0])],n=0;for(;n<i.length;)t.push(il),nl(t,i[n]),t.push(il,Pr(e[++n]));return Yx(t),new jt(t)}be.str=Dp;function nl(e,i){i instanceof jt?e.push(...i._items):i instanceof pn?e.push(i):e.push(ew(i))}be.addCodeArg=nl;function Yx(e){let i=1;for(;i<e.length-1;){if(e[i]===il){let t=Qx(e[i-1],e[i+1]);if(t!==void 0){e.splice(i-1,3,t);continue}e[i++]="+"}i++}}function Qx(e,i){if(i==='""')return e;if(e==='""')return i;if(typeof e=="string")return i instanceof pn||e[e.length-1]!=='"'?void 0:typeof i!="string"?`${e.slice(0,-1)}${i}"`:i[0]==='"'?e.slice(0,-1)+i.slice(1):void 0;if(typeof i=="string"&&i[0]==='"'&&!(e instanceof pn))return`"${e}${i.slice(1)}`}function Zx(e,i){return i.emptyStr()?e:e.emptyStr()?i:Dp`${e}${i}`}be.strConcat=Zx;function ew(e){return typeof e=="number"||typeof e=="boolean"||e===null?e:Pr(Array.isArray(e)?e.join(","):e)}function tw(e){return new jt(Pr(e))}be.stringify=tw;function Pr(e){return JSON.stringify(e).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}be.safeStringify=Pr;function iw(e){return typeof e=="string"&&be.IDENTIFIER.test(e)?new jt(`.${e}`):Op`[${e}]`}be.getProperty=iw;function nw(e){if(typeof e=="string"&&be.IDENTIFIER.test(e))return new jt(`${e}`);throw new Error(`CodeGen: invalid export name: ${e}, use explicit $id name mapping`)}be.getEsmExportName=nw;function rw(e){return new jt(e.toString())}be.regexpCode=rw});var al=g(Ct=>{"use strict";Object.defineProperty(Ct,"__esModule",{value:!0});Ct.ValueScope=Ct.ValueScopeName=Ct.Scope=Ct.varKinds=Ct.UsedValueState=void 0;var vt=Tr(),rl=class extends Error{constructor(i){super(`CodeGen: "code" for ${i} not defined`),this.value=i.value}},ga=function(e){return e[e.Started=0]="Started",e[e.Completed=1]="Completed",e}(ga||(Ct.UsedValueState=ga={}));Ct.varKinds={const:new vt.Name("const"),let:new vt.Name("let"),var:new vt.Name("var")};var _a=class{constructor({prefixes:i,parent:t}={}){this._names={},this._prefixes=i,this._parent=t}toName(i){return i instanceof vt.Name?i:this.name(i)}name(i){return new vt.Name(this._newName(i))}_newName(i){let t=this._names[i]||this._nameGroup(i);return`${i}${t.index++}`}_nameGroup(i){var t,n;if(!((n=(t=this._parent)===null||t===void 0?void 0:t._prefixes)===null||n===void 0)&&n.has(i)||this._prefixes&&!this._prefixes.has(i))throw new Error(`CodeGen: prefix "${i}" is not allowed in this scope`);return this._names[i]={prefix:i,index:0}}};Ct.Scope=_a;var ya=class extends vt.Name{constructor(i,t){super(t),this.prefix=i}setValue(i,{property:t,itemIndex:n}){this.value=i,this.scopePath=(0,vt._)`.${new vt.Name(t)}[${n}]`}};Ct.ValueScopeName=ya;var ow=(0,vt._)`\n`,ol=class extends _a{constructor(i){super(i),this._values={},this._scope=i.scope,this.opts=$e(X({},i),{_n:i.lines?ow:vt.nil})}get(){return this._scope}name(i){return new ya(i,this._newName(i))}value(i,t){var n;if(t.ref===void 0)throw new Error("CodeGen: ref must be passed in value");let r=this.toName(i),{prefix:o}=r,a=(n=t.key)!==null&&n!==void 0?n:t.ref,s=this._values[o];if(s){let c=s.get(a);if(c)return c}else s=this._values[o]=new Map;s.set(a,r);let l=this._scope[o]||(this._scope[o]=[]),u=l.length;return l[u]=t.ref,r.setValue(t,{property:o,itemIndex:u}),r}getValue(i,t){let n=this._values[i];if(n)return n.get(t)}scopeRefs(i,t=this._values){return this._reduceValues(t,n=>{if(n.scopePath===void 0)throw new Error(`CodeGen: name "${n}" has no value`);return(0,vt._)`${i}${n.scopePath}`})}scopeCode(i=this._values,t,n){return this._reduceValues(i,r=>{if(r.value===void 0)throw new Error(`CodeGen: name "${r}" has no value`);return r.value.code},t,n)}_reduceValues(i,t,n={},r){let o=vt.nil;for(let a in i){let s=i[a];if(!s)continue;let l=n[a]=n[a]||new Map;s.forEach(u=>{if(l.has(u))return;l.set(u,ga.Started);let c=t(u);if(c){let p=this.opts.es5?Ct.varKinds.var:Ct.varKinds.const;o=(0,vt._)`${o}${p} ${u} = ${c};${this.opts._n}`}else if(c=r?.(u))o=(0,vt._)`${o}${c}${this.opts._n}`;else throw new rl(u);l.set(u,ga.Completed)})}return o}};Ct.ValueScope=ol});var ee=g(ue=>{"use strict";Object.defineProperty(ue,"__esModule",{value:!0});ue.or=ue.and=ue.not=ue.CodeGen=ue.operators=ue.varKinds=ue.ValueScopeName=ue.ValueScope=ue.Scope=ue.Name=ue.regexpCode=ue.stringify=ue.getProperty=ue.nil=ue.strConcat=ue.str=ue._=void 0;var ge=Tr(),Jt=al(),Ri=Tr();Object.defineProperty(ue,"_",{enumerable:!0,get:function(){return Ri._}});Object.defineProperty(ue,"str",{enumerable:!0,get:function(){return Ri.str}});Object.defineProperty(ue,"strConcat",{enumerable:!0,get:function(){return Ri.strConcat}});Object.defineProperty(ue,"nil",{enumerable:!0,get:function(){return Ri.nil}});Object.defineProperty(ue,"getProperty",{enumerable:!0,get:function(){return Ri.getProperty}});Object.defineProperty(ue,"stringify",{enumerable:!0,get:function(){return Ri.stringify}});Object.defineProperty(ue,"regexpCode",{enumerable:!0,get:function(){return Ri.regexpCode}});Object.defineProperty(ue,"Name",{enumerable:!0,get:function(){return Ri.Name}});var wa=al();Object.defineProperty(ue,"Scope",{enumerable:!0,get:function(){return wa.Scope}});Object.defineProperty(ue,"ValueScope",{enumerable:!0,get:function(){return wa.ValueScope}});Object.defineProperty(ue,"ValueScopeName",{enumerable:!0,get:function(){return wa.ValueScopeName}});Object.defineProperty(ue,"varKinds",{enumerable:!0,get:function(){return wa.varKinds}});ue.operators={GT:new ge._Code(">"),GTE:new ge._Code(">="),LT:new ge._Code("<"),LTE:new ge._Code("<="),EQ:new ge._Code("==="),NEQ:new ge._Code("!=="),NOT:new ge._Code("!"),OR:new ge._Code("||"),AND:new ge._Code("&&"),ADD:new ge._Code("+")};var gi=class{optimizeNodes(){return this}optimizeNames(i,t){return this}},sl=class extends gi{constructor(i,t,n){super(),this.varKind=i,this.name=t,this.rhs=n}render({es5:i,_n:t}){let n=i?Jt.varKinds.var:this.varKind,r=this.rhs===void 0?"":` = ${this.rhs}`;return`${n} ${this.name}${r};`+t}optimizeNames(i,t){if(i[this.name.str])return this.rhs&&(this.rhs=Bn(this.rhs,i,t)),this}get names(){return this.rhs instanceof ge._CodeOrName?this.rhs.names:{}}},va=class extends gi{constructor(i,t,n){super(),this.lhs=i,this.rhs=t,this.sideEffects=n}render({_n:i}){return`${this.lhs} = ${this.rhs};`+i}optimizeNames(i,t){if(!(this.lhs instanceof ge.Name&&!i[this.lhs.str]&&!this.sideEffects))return this.rhs=Bn(this.rhs,i,t),this}get names(){let i=this.lhs instanceof ge.Name?{}:X({},this.lhs.names);return xa(i,this.rhs)}},ll=class extends va{constructor(i,t,n,r){super(i,n,r),this.op=t}render({_n:i}){return`${this.lhs} ${this.op}= ${this.rhs};`+i}},ul=class extends gi{constructor(i){super(),this.label=i,this.names={}}render({_n:i}){return`${this.label}:`+i}},cl=class extends gi{constructor(i){super(),this.label=i,this.names={}}render({_n:i}){return`break${this.label?` ${this.label}`:""};`+i}},dl=class extends gi{constructor(i){super(),this.error=i}render({_n:i}){return`throw ${this.error};`+i}get names(){return this.error.names}},pl=class extends gi{constructor(i){super(),this.code=i}render({_n:i}){return`${this.code};`+i}optimizeNodes(){return`${this.code}`?this:void 0}optimizeNames(i,t){return this.code=Bn(this.code,i,t),this}get names(){return this.code instanceof ge._CodeOrName?this.code.names:{}}},kr=class extends gi{constructor(i=[]){super(),this.nodes=i}render(i){return this.nodes.reduce((t,n)=>t+n.render(i),"")}optimizeNodes(){let{nodes:i}=this,t=i.length;for(;t--;){let n=i[t].optimizeNodes();Array.isArray(n)?i.splice(t,1,...n):n?i[t]=n:i.splice(t,1)}return i.length>0?this:void 0}optimizeNames(i,t){let{nodes:n}=this,r=n.length;for(;r--;){let o=n[r];o.optimizeNames(i,t)||(aw(i,o.names),n.splice(r,1))}return n.length>0?this:void 0}get names(){return this.nodes.reduce((i,t)=>fn(i,t.names),{})}},_i=class extends kr{render(i){return"{"+i._n+super.render(i)+"}"+i._n}},fl=class extends kr{},ml=(()=>{class e extends _i{}return e.kind="else",e})(),ba=(()=>{class e extends _i{constructor(t,n){super(n),this.condition=t}render(t){let n=`if(${this.condition})`+super.render(t);return this.else&&(n+="else "+this.else.render(t)),n}optimizeNodes(){super.optimizeNodes();let t=this.condition;if(t===!0)return this.nodes;let n=this.else;if(n){let r=n.optimizeNodes();n=this.else=Array.isArray(r)?new ml(r):r}if(n)return t===!1?n instanceof e?n:n.nodes:this.nodes.length?this:new e(jp(t),n instanceof e?[n]:n.nodes);if(!(t===!1||!this.nodes.length))return this}optimizeNames(t,n){var r;if(this.else=(r=this.else)===null||r===void 0?void 0:r.optimizeNames(t,n),!!(super.optimizeNames(t,n)||this.else))return this.condition=Bn(this.condition,t,n),this}get names(){let t=super.names;return xa(t,this.condition),this.else&&fn(t,this.else.names),t}}return e.kind="if",e})(),Ia=(()=>{class e extends _i{}return e.kind="for",e})(),hl=class extends Ia{constructor(i){super(),this.iteration=i}render(i){return`for(${this.iteration})`+super.render(i)}optimizeNames(i,t){if(super.optimizeNames(i,t))return this.iteration=Bn(this.iteration,i,t),this}get names(){return fn(super.names,this.iteration.names)}},gl=class extends Ia{constructor(i,t,n,r){super(),this.varKind=i,this.name=t,this.from=n,this.to=r}render(i){let t=i.es5?Jt.varKinds.var:this.varKind,{name:n,from:r,to:o}=this;return`for(${t} ${n}=${r}; ${n}<${o}; ${n}++)`+super.render(i)}get names(){let i=xa(super.names,this.from);return xa(i,this.to)}},Ca=class extends Ia{constructor(i,t,n,r){super(),this.loop=i,this.varKind=t,this.name=n,this.iterable=r}render(i){return`for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})`+super.render(i)}optimizeNames(i,t){if(super.optimizeNames(i,t))return this.iterable=Bn(this.iterable,i,t),this}get names(){return fn(super.names,this.iterable.names)}},Np=(()=>{class e extends _i{constructor(t,n,r){super(),this.name=t,this.args=n,this.async=r}render(t){return`${this.async?"async ":""}function ${this.name}(${this.args})`+super.render(t)}}return e.kind="func",e})(),Ap=(()=>{class e extends kr{render(t){return"return "+super.render(t)}}return e.kind="return",e})(),_l=class extends _i{render(i){let t="try"+super.render(i);return this.catch&&(t+=this.catch.render(i)),this.finally&&(t+=this.finally.render(i)),t}optimizeNodes(){var i,t;return super.optimizeNodes(),(i=this.catch)===null||i===void 0||i.optimizeNodes(),(t=this.finally)===null||t===void 0||t.optimizeNodes(),this}optimizeNames(i,t){var n,r;return super.optimizeNames(i,t),(n=this.catch)===null||n===void 0||n.optimizeNames(i,t),(r=this.finally)===null||r===void 0||r.optimizeNames(i,t),this}get names(){let i=super.names;return this.catch&&fn(i,this.catch.names),this.finally&&fn(i,this.finally.names),i}},Fp=(()=>{class e extends _i{constructor(t){super(),this.error=t}render(t){return`catch(${this.error})`+super.render(t)}}return e.kind="catch",e})(),qp=(()=>{class e extends _i{render(t){return"finally"+super.render(t)}}return e.kind="finally",e})(),yl=class{constructor(i,t={}){this._values={},this._blockStarts=[],this._constants={},this.opts=$e(X({},t),{_n:t.lines?`
1
+ import{a as Mp}from"./chunk-MMQQ4QC6.js";import{a as tl,c as Ep,d as Pp,e as Vn,f as si,g as Xx}from"./chunk-KKFRJVVW.js";import{a as Cp}from"./chunk-F3MG6UU6.js";import{a as $p}from"./chunk-AKD24HZC.js";import{a as kp}from"./chunk-SAV5QYWS.js";import{a as wp,b as Ip,c as Sp}from"./chunk-H337OZRD.js";import{a as $r}from"./chunk-IMT3YYMD.js";import{a as Tp}from"./chunk-UKEZ5GGN.js";import{a as pa,b as ha}from"./chunk-RPRM66DV.js";import{a as fa,b as ma}from"./chunk-S7AIVWKK.js";import{a as xp}from"./chunk-3T4CLJZB.js";import{a as aa,b as sa,c as la,d as ua,e as ca,f as da,g as qn,m as je,n as et,o as gp,p as _p,q as yp,r as bp,s as vp,t as jn}from"./chunk-MJK6N6PA.js";import{A as Sr,a as lp,b as Fi,c as An,e as bt,f as up,h as cp,i as dp,j as pp,k as fp,l as qi,m as mp,o as ji,r as Fn,s as cn,t as dn,y as hp,z as Gt}from"./chunk-VPU5FNT3.js";import{a as Bi}from"./chunk-K47XJRH6.js";import{d as ai}from"./chunk-25NXLXGL.js";import{b as Be}from"./chunk-2HWQ6KHG.js";import{k as we,m as Vi,n as ve}from"./chunk-VZCAAS2X.js";import{a as xe,b as Ve}from"./chunk-CPAHENLQ.js";import{e as sp}from"./chunk-RJOGO4M5.js";import{$a as Yd,Ac as np,Bc as rp,Ca as ki,Cc as Te,D as Wd,Da as Xd,Dc as Kt,Ec as ln,Fa as On,Fc as Ft,Gc as Nn,Hb as G,Hc as w,Ib as E,Ic as S,Jb as P,Jc as Ue,Lb as dt,M as kn,Mb as pt,Nb as ft,Ob as b,Pb as f,Qb as m,Qc as mt,Rb as $,Rc as z,Sb as ri,Sc as Ai,Tb as oi,Ub as an,Uc as op,Vb as ep,Wb as tp,Xa as he,Z as Ys,_b as H,a as X,aa as Ir,ab as d,b as $e,bc as j,cc as Mi,dc as _,e as g,fa as Kd,fb as ia,g as Me,ga as Tt,gb as hi,h as K,ha as Mn,hc as Qs,ib as rn,ic as Zs,id as qt,ja as Gd,jc as el,jd as un,k as Ld,ka as Jd,kc as Oi,kd as ht,la as k,lc as Di,mb as Q,mc as ip,n as Pt,nb as Dn,nc as Wt,o as Xs,ob as on,oc as Ni,pb as Qd,pc as Y,q as Ud,qc as C,ra as F,rc as L,rd as oa,sa as q,sb as le,sc as B,tc as sn,ub as Zd,uc as ra,v as zd,vb as na,w as ce,x as Hd,xc as Oe,yc as De,za as ta,zc as Ne,zd as ap}from"./chunk-WEVBEUAJ.js";var Tr=g(be=>{"use strict";Object.defineProperty(be,"__esModule",{value:!0});be.regexpCode=be.getEsmExportName=be.getProperty=be.safeStringify=be.stringify=be.strConcat=be.addCodeArg=be.str=be._=be.nil=be._Code=be.Name=be.IDENTIFIER=be._CodeOrName=void 0;var Er=class{};be._CodeOrName=Er;be.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;var pn=class extends Er{constructor(i){if(super(),!be.IDENTIFIER.test(i))throw new Error("CodeGen: name must be a valid identifier");this.str=i}toString(){return this.str}emptyStr(){return!1}get names(){return{[this.str]:1}}};be.Name=pn;var jt=class extends Er{constructor(i){super(),this._items=typeof i=="string"?[i]:i}toString(){return this.str}emptyStr(){if(this._items.length>1)return!1;let i=this._items[0];return i===""||i==='""'}get str(){var i;return(i=this._str)!==null&&i!==void 0?i:this._str=this._items.reduce((t,n)=>`${t}${n}`,"")}get names(){var i;return(i=this._names)!==null&&i!==void 0?i:this._names=this._items.reduce((t,n)=>(n instanceof pn&&(t[n.str]=(t[n.str]||0)+1),t),{})}};be._Code=jt;be.nil=new jt("");function Op(e,...i){let t=[e[0]],n=0;for(;n<i.length;)nl(t,i[n]),t.push(e[++n]);return new jt(t)}be._=Op;var il=new jt("+");function Dp(e,...i){let t=[Pr(e[0])],n=0;for(;n<i.length;)t.push(il),nl(t,i[n]),t.push(il,Pr(e[++n]));return Yx(t),new jt(t)}be.str=Dp;function nl(e,i){i instanceof jt?e.push(...i._items):i instanceof pn?e.push(i):e.push(ew(i))}be.addCodeArg=nl;function Yx(e){let i=1;for(;i<e.length-1;){if(e[i]===il){let t=Qx(e[i-1],e[i+1]);if(t!==void 0){e.splice(i-1,3,t);continue}e[i++]="+"}i++}}function Qx(e,i){if(i==='""')return e;if(e==='""')return i;if(typeof e=="string")return i instanceof pn||e[e.length-1]!=='"'?void 0:typeof i!="string"?`${e.slice(0,-1)}${i}"`:i[0]==='"'?e.slice(0,-1)+i.slice(1):void 0;if(typeof i=="string"&&i[0]==='"'&&!(e instanceof pn))return`"${e}${i.slice(1)}`}function Zx(e,i){return i.emptyStr()?e:e.emptyStr()?i:Dp`${e}${i}`}be.strConcat=Zx;function ew(e){return typeof e=="number"||typeof e=="boolean"||e===null?e:Pr(Array.isArray(e)?e.join(","):e)}function tw(e){return new jt(Pr(e))}be.stringify=tw;function Pr(e){return JSON.stringify(e).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}be.safeStringify=Pr;function iw(e){return typeof e=="string"&&be.IDENTIFIER.test(e)?new jt(`.${e}`):Op`[${e}]`}be.getProperty=iw;function nw(e){if(typeof e=="string"&&be.IDENTIFIER.test(e))return new jt(`${e}`);throw new Error(`CodeGen: invalid export name: ${e}, use explicit $id name mapping`)}be.getEsmExportName=nw;function rw(e){return new jt(e.toString())}be.regexpCode=rw});var al=g(Ct=>{"use strict";Object.defineProperty(Ct,"__esModule",{value:!0});Ct.ValueScope=Ct.ValueScopeName=Ct.Scope=Ct.varKinds=Ct.UsedValueState=void 0;var vt=Tr(),rl=class extends Error{constructor(i){super(`CodeGen: "code" for ${i} not defined`),this.value=i.value}},ga=function(e){return e[e.Started=0]="Started",e[e.Completed=1]="Completed",e}(ga||(Ct.UsedValueState=ga={}));Ct.varKinds={const:new vt.Name("const"),let:new vt.Name("let"),var:new vt.Name("var")};var _a=class{constructor({prefixes:i,parent:t}={}){this._names={},this._prefixes=i,this._parent=t}toName(i){return i instanceof vt.Name?i:this.name(i)}name(i){return new vt.Name(this._newName(i))}_newName(i){let t=this._names[i]||this._nameGroup(i);return`${i}${t.index++}`}_nameGroup(i){var t,n;if(!((n=(t=this._parent)===null||t===void 0?void 0:t._prefixes)===null||n===void 0)&&n.has(i)||this._prefixes&&!this._prefixes.has(i))throw new Error(`CodeGen: prefix "${i}" is not allowed in this scope`);return this._names[i]={prefix:i,index:0}}};Ct.Scope=_a;var ya=class extends vt.Name{constructor(i,t){super(t),this.prefix=i}setValue(i,{property:t,itemIndex:n}){this.value=i,this.scopePath=(0,vt._)`.${new vt.Name(t)}[${n}]`}};Ct.ValueScopeName=ya;var ow=(0,vt._)`\n`,ol=class extends _a{constructor(i){super(i),this._values={},this._scope=i.scope,this.opts=$e(X({},i),{_n:i.lines?ow:vt.nil})}get(){return this._scope}name(i){return new ya(i,this._newName(i))}value(i,t){var n;if(t.ref===void 0)throw new Error("CodeGen: ref must be passed in value");let r=this.toName(i),{prefix:o}=r,a=(n=t.key)!==null&&n!==void 0?n:t.ref,s=this._values[o];if(s){let c=s.get(a);if(c)return c}else s=this._values[o]=new Map;s.set(a,r);let l=this._scope[o]||(this._scope[o]=[]),u=l.length;return l[u]=t.ref,r.setValue(t,{property:o,itemIndex:u}),r}getValue(i,t){let n=this._values[i];if(n)return n.get(t)}scopeRefs(i,t=this._values){return this._reduceValues(t,n=>{if(n.scopePath===void 0)throw new Error(`CodeGen: name "${n}" has no value`);return(0,vt._)`${i}${n.scopePath}`})}scopeCode(i=this._values,t,n){return this._reduceValues(i,r=>{if(r.value===void 0)throw new Error(`CodeGen: name "${r}" has no value`);return r.value.code},t,n)}_reduceValues(i,t,n={},r){let o=vt.nil;for(let a in i){let s=i[a];if(!s)continue;let l=n[a]=n[a]||new Map;s.forEach(u=>{if(l.has(u))return;l.set(u,ga.Started);let c=t(u);if(c){let p=this.opts.es5?Ct.varKinds.var:Ct.varKinds.const;o=(0,vt._)`${o}${p} ${u} = ${c};${this.opts._n}`}else if(c=r?.(u))o=(0,vt._)`${o}${c}${this.opts._n}`;else throw new rl(u);l.set(u,ga.Completed)})}return o}};Ct.ValueScope=ol});var ee=g(ue=>{"use strict";Object.defineProperty(ue,"__esModule",{value:!0});ue.or=ue.and=ue.not=ue.CodeGen=ue.operators=ue.varKinds=ue.ValueScopeName=ue.ValueScope=ue.Scope=ue.Name=ue.regexpCode=ue.stringify=ue.getProperty=ue.nil=ue.strConcat=ue.str=ue._=void 0;var ge=Tr(),Jt=al(),Ri=Tr();Object.defineProperty(ue,"_",{enumerable:!0,get:function(){return Ri._}});Object.defineProperty(ue,"str",{enumerable:!0,get:function(){return Ri.str}});Object.defineProperty(ue,"strConcat",{enumerable:!0,get:function(){return Ri.strConcat}});Object.defineProperty(ue,"nil",{enumerable:!0,get:function(){return Ri.nil}});Object.defineProperty(ue,"getProperty",{enumerable:!0,get:function(){return Ri.getProperty}});Object.defineProperty(ue,"stringify",{enumerable:!0,get:function(){return Ri.stringify}});Object.defineProperty(ue,"regexpCode",{enumerable:!0,get:function(){return Ri.regexpCode}});Object.defineProperty(ue,"Name",{enumerable:!0,get:function(){return Ri.Name}});var wa=al();Object.defineProperty(ue,"Scope",{enumerable:!0,get:function(){return wa.Scope}});Object.defineProperty(ue,"ValueScope",{enumerable:!0,get:function(){return wa.ValueScope}});Object.defineProperty(ue,"ValueScopeName",{enumerable:!0,get:function(){return wa.ValueScopeName}});Object.defineProperty(ue,"varKinds",{enumerable:!0,get:function(){return wa.varKinds}});ue.operators={GT:new ge._Code(">"),GTE:new ge._Code(">="),LT:new ge._Code("<"),LTE:new ge._Code("<="),EQ:new ge._Code("==="),NEQ:new ge._Code("!=="),NOT:new ge._Code("!"),OR:new ge._Code("||"),AND:new ge._Code("&&"),ADD:new ge._Code("+")};var gi=class{optimizeNodes(){return this}optimizeNames(i,t){return this}},sl=class extends gi{constructor(i,t,n){super(),this.varKind=i,this.name=t,this.rhs=n}render({es5:i,_n:t}){let n=i?Jt.varKinds.var:this.varKind,r=this.rhs===void 0?"":` = ${this.rhs}`;return`${n} ${this.name}${r};`+t}optimizeNames(i,t){if(i[this.name.str])return this.rhs&&(this.rhs=Bn(this.rhs,i,t)),this}get names(){return this.rhs instanceof ge._CodeOrName?this.rhs.names:{}}},va=class extends gi{constructor(i,t,n){super(),this.lhs=i,this.rhs=t,this.sideEffects=n}render({_n:i}){return`${this.lhs} = ${this.rhs};`+i}optimizeNames(i,t){if(!(this.lhs instanceof ge.Name&&!i[this.lhs.str]&&!this.sideEffects))return this.rhs=Bn(this.rhs,i,t),this}get names(){let i=this.lhs instanceof ge.Name?{}:X({},this.lhs.names);return xa(i,this.rhs)}},ll=class extends va{constructor(i,t,n,r){super(i,n,r),this.op=t}render({_n:i}){return`${this.lhs} ${this.op}= ${this.rhs};`+i}},ul=class extends gi{constructor(i){super(),this.label=i,this.names={}}render({_n:i}){return`${this.label}:`+i}},cl=class extends gi{constructor(i){super(),this.label=i,this.names={}}render({_n:i}){return`break${this.label?` ${this.label}`:""};`+i}},dl=class extends gi{constructor(i){super(),this.error=i}render({_n:i}){return`throw ${this.error};`+i}get names(){return this.error.names}},pl=class extends gi{constructor(i){super(),this.code=i}render({_n:i}){return`${this.code};`+i}optimizeNodes(){return`${this.code}`?this:void 0}optimizeNames(i,t){return this.code=Bn(this.code,i,t),this}get names(){return this.code instanceof ge._CodeOrName?this.code.names:{}}},kr=class extends gi{constructor(i=[]){super(),this.nodes=i}render(i){return this.nodes.reduce((t,n)=>t+n.render(i),"")}optimizeNodes(){let{nodes:i}=this,t=i.length;for(;t--;){let n=i[t].optimizeNodes();Array.isArray(n)?i.splice(t,1,...n):n?i[t]=n:i.splice(t,1)}return i.length>0?this:void 0}optimizeNames(i,t){let{nodes:n}=this,r=n.length;for(;r--;){let o=n[r];o.optimizeNames(i,t)||(aw(i,o.names),n.splice(r,1))}return n.length>0?this:void 0}get names(){return this.nodes.reduce((i,t)=>fn(i,t.names),{})}},_i=class extends kr{render(i){return"{"+i._n+super.render(i)+"}"+i._n}},fl=class extends kr{},ml=(()=>{class e extends _i{}return e.kind="else",e})(),ba=(()=>{class e extends _i{constructor(t,n){super(n),this.condition=t}render(t){let n=`if(${this.condition})`+super.render(t);return this.else&&(n+="else "+this.else.render(t)),n}optimizeNodes(){super.optimizeNodes();let t=this.condition;if(t===!0)return this.nodes;let n=this.else;if(n){let r=n.optimizeNodes();n=this.else=Array.isArray(r)?new ml(r):r}if(n)return t===!1?n instanceof e?n:n.nodes:this.nodes.length?this:new e(jp(t),n instanceof e?[n]:n.nodes);if(!(t===!1||!this.nodes.length))return this}optimizeNames(t,n){var r;if(this.else=(r=this.else)===null||r===void 0?void 0:r.optimizeNames(t,n),!!(super.optimizeNames(t,n)||this.else))return this.condition=Bn(this.condition,t,n),this}get names(){let t=super.names;return xa(t,this.condition),this.else&&fn(t,this.else.names),t}}return e.kind="if",e})(),Ia=(()=>{class e extends _i{}return e.kind="for",e})(),hl=class extends Ia{constructor(i){super(),this.iteration=i}render(i){return`for(${this.iteration})`+super.render(i)}optimizeNames(i,t){if(super.optimizeNames(i,t))return this.iteration=Bn(this.iteration,i,t),this}get names(){return fn(super.names,this.iteration.names)}},gl=class extends Ia{constructor(i,t,n,r){super(),this.varKind=i,this.name=t,this.from=n,this.to=r}render(i){let t=i.es5?Jt.varKinds.var:this.varKind,{name:n,from:r,to:o}=this;return`for(${t} ${n}=${r}; ${n}<${o}; ${n}++)`+super.render(i)}get names(){let i=xa(super.names,this.from);return xa(i,this.to)}},Ca=class extends Ia{constructor(i,t,n,r){super(),this.loop=i,this.varKind=t,this.name=n,this.iterable=r}render(i){return`for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})`+super.render(i)}optimizeNames(i,t){if(super.optimizeNames(i,t))return this.iterable=Bn(this.iterable,i,t),this}get names(){return fn(super.names,this.iterable.names)}},Np=(()=>{class e extends _i{constructor(t,n,r){super(),this.name=t,this.args=n,this.async=r}render(t){return`${this.async?"async ":""}function ${this.name}(${this.args})`+super.render(t)}}return e.kind="func",e})(),Ap=(()=>{class e extends kr{render(t){return"return "+super.render(t)}}return e.kind="return",e})(),_l=class extends _i{render(i){let t="try"+super.render(i);return this.catch&&(t+=this.catch.render(i)),this.finally&&(t+=this.finally.render(i)),t}optimizeNodes(){var i,t;return super.optimizeNodes(),(i=this.catch)===null||i===void 0||i.optimizeNodes(),(t=this.finally)===null||t===void 0||t.optimizeNodes(),this}optimizeNames(i,t){var n,r;return super.optimizeNames(i,t),(n=this.catch)===null||n===void 0||n.optimizeNames(i,t),(r=this.finally)===null||r===void 0||r.optimizeNames(i,t),this}get names(){let i=super.names;return this.catch&&fn(i,this.catch.names),this.finally&&fn(i,this.finally.names),i}},Fp=(()=>{class e extends _i{constructor(t){super(),this.error=t}render(t){return`catch(${this.error})`+super.render(t)}}return e.kind="catch",e})(),qp=(()=>{class e extends _i{render(t){return"finally"+super.render(t)}}return e.kind="finally",e})(),yl=class{constructor(i,t={}){this._values={},this._blockStarts=[],this._constants={},this.opts=$e(X({},t),{_n:t.lines?`
2
2
  `:""}),this._extScope=i,this._scope=new Jt.Scope({parent:i}),this._nodes=[new fl]}toString(){return this._root.render(this.opts)}name(i){return this._scope.name(i)}scopeName(i){return this._extScope.name(i)}scopeValue(i,t){let n=this._extScope.value(i,t);return(this._values[n.prefix]||(this._values[n.prefix]=new Set)).add(n),n}getScopeValue(i,t){return this._extScope.getValue(i,t)}scopeRefs(i){return this._extScope.scopeRefs(i,this._values)}scopeCode(){return this._extScope.scopeCode(this._values)}_def(i,t,n,r){let o=this._scope.toName(t);return n!==void 0&&r&&(this._constants[o.str]=n),this._leafNode(new sl(i,o,n)),o}const(i,t,n){return this._def(Jt.varKinds.const,i,t,n)}let(i,t,n){return this._def(Jt.varKinds.let,i,t,n)}var(i,t,n){return this._def(Jt.varKinds.var,i,t,n)}assign(i,t,n){return this._leafNode(new va(i,t,n))}add(i,t){return this._leafNode(new ll(i,ue.operators.ADD,t))}code(i){return typeof i=="function"?i():i!==ge.nil&&this._leafNode(new pl(i)),this}object(...i){let t=["{"];for(let[n,r]of i)t.length>1&&t.push(","),t.push(n),(n!==r||this.opts.es5)&&(t.push(":"),(0,ge.addCodeArg)(t,r));return t.push("}"),new ge._Code(t)}if(i,t,n){if(this._blockNode(new ba(i)),t&&n)this.code(t).else().code(n).endIf();else if(t)this.code(t).endIf();else if(n)throw new Error('CodeGen: "else" body without "then" body');return this}elseIf(i){return this._elseNode(new ba(i))}else(){return this._elseNode(new ml)}endIf(){return this._endBlockNode(ba,ml)}_for(i,t){return this._blockNode(i),t&&this.code(t).endFor(),this}for(i,t){return this._for(new hl(i),t)}forRange(i,t,n,r,o=this.opts.es5?Jt.varKinds.var:Jt.varKinds.let){let a=this._scope.toName(i);return this._for(new gl(o,a,t,n),()=>r(a))}forOf(i,t,n,r=Jt.varKinds.const){let o=this._scope.toName(i);if(this.opts.es5){let a=t instanceof ge.Name?t:this.var("_arr",t);return this.forRange("_i",0,(0,ge._)`${a}.length`,s=>{this.var(o,(0,ge._)`${a}[${s}]`),n(o)})}return this._for(new Ca("of",r,o,t),()=>n(o))}forIn(i,t,n,r=this.opts.es5?Jt.varKinds.var:Jt.varKinds.const){if(this.opts.ownProperties)return this.forOf(i,(0,ge._)`Object.keys(${t})`,n);let o=this._scope.toName(i);return this._for(new Ca("in",r,o,t),()=>n(o))}endFor(){return this._endBlockNode(Ia)}label(i){return this._leafNode(new ul(i))}break(i){return this._leafNode(new cl(i))}return(i){let t=new Ap;if(this._blockNode(t),this.code(i),t.nodes.length!==1)throw new Error('CodeGen: "return" should have one node');return this._endBlockNode(Ap)}try(i,t,n){if(!t&&!n)throw new Error('CodeGen: "try" without "catch" and "finally"');let r=new _l;if(this._blockNode(r),this.code(i),t){let o=this.name("e");this._currNode=r.catch=new Fp(o),t(o)}return n&&(this._currNode=r.finally=new qp,this.code(n)),this._endBlockNode(Fp,qp)}throw(i){return this._leafNode(new dl(i))}block(i,t){return this._blockStarts.push(this._nodes.length),i&&this.code(i).endBlock(t),this}endBlock(i){let t=this._blockStarts.pop();if(t===void 0)throw new Error("CodeGen: not in self-balancing block");let n=this._nodes.length-t;if(n<0||i!==void 0&&n!==i)throw new Error(`CodeGen: wrong number of nodes: ${n} vs ${i} expected`);return this._nodes.length=t,this}func(i,t=ge.nil,n,r){return this._blockNode(new Np(i,t,n)),r&&this.code(r).endFunc(),this}endFunc(){return this._endBlockNode(Np)}optimize(i=1){for(;i-- >0;)this._root.optimizeNodes(),this._root.optimizeNames(this._root.names,this._constants)}_leafNode(i){return this._currNode.nodes.push(i),this}_blockNode(i){this._currNode.nodes.push(i),this._nodes.push(i)}_endBlockNode(i,t){let n=this._currNode;if(n instanceof i||t&&n instanceof t)return this._nodes.pop(),this;throw new Error(`CodeGen: not in block "${t?`${i.kind}/${t.kind}`:i.kind}"`)}_elseNode(i){let t=this._currNode;if(!(t instanceof ba))throw new Error('CodeGen: "else" without "if"');return this._currNode=t.else=i,this}get _root(){return this._nodes[0]}get _currNode(){let i=this._nodes;return i[i.length-1]}set _currNode(i){let t=this._nodes;t[t.length-1]=i}};ue.CodeGen=yl;function fn(e,i){for(let t in i)e[t]=(e[t]||0)+(i[t]||0);return e}function xa(e,i){return i instanceof ge._CodeOrName?fn(e,i.names):e}function Bn(e,i,t){if(e instanceof ge.Name)return n(e);if(!r(e))return e;return new ge._Code(e._items.reduce((o,a)=>(a instanceof ge.Name&&(a=n(a)),a instanceof ge._Code?o.push(...a._items):o.push(a),o),[]));function n(o){let a=t[o.str];return a===void 0||i[o.str]!==1?o:(delete i[o.str],a)}function r(o){return o instanceof ge._Code&&o._items.some(a=>a instanceof ge.Name&&i[a.str]===1&&t[a.str]!==void 0)}}function aw(e,i){for(let t in i)e[t]=(e[t]||0)-(i[t]||0)}function jp(e){return typeof e=="boolean"||typeof e=="number"||e===null?!e:(0,ge._)`!${bl(e)}`}ue.not=jp;var sw=Vp(ue.operators.AND);function lw(...e){return e.reduce(sw)}ue.and=lw;var uw=Vp(ue.operators.OR);function cw(...e){return e.reduce(uw)}ue.or=cw;function Vp(e){return(i,t)=>i===ge.nil?t:t===ge.nil?i:(0,ge._)`${bl(i)} ${e} ${bl(t)}`}function bl(e){return e instanceof ge.Name?e:(0,ge._)`(${e})`}});var pe=g(de=>{"use strict";Object.defineProperty(de,"__esModule",{value:!0});de.checkStrictMode=de.getErrorPath=de.Type=de.useFunc=de.setEvaluated=de.evaluatedPropsToName=de.mergeEvaluated=de.eachItem=de.unescapeJsonPointer=de.escapeJsonPointer=de.escapeFragment=de.unescapeFragment=de.schemaRefOrVal=de.schemaHasRulesButRef=de.schemaHasRules=de.checkUnknownRules=de.alwaysValidSchema=de.toHash=void 0;var Ee=ee(),dw=Tr();function pw(e){let i={};for(let t of e)i[t]=!0;return i}de.toHash=pw;function fw(e,i){return typeof i=="boolean"?i:Object.keys(i).length===0?!0:(Lp(e,i),!Up(i,e.self.RULES.all))}de.alwaysValidSchema=fw;function Lp(e,i=e.schema){let{opts:t,self:n}=e;if(!t.strictSchema||typeof i=="boolean")return;let r=n.RULES.keywords;for(let o in i)r[o]||Wp(e,`unknown keyword: "${o}"`)}de.checkUnknownRules=Lp;function Up(e,i){if(typeof e=="boolean")return!e;for(let t in e)if(i[t])return!0;return!1}de.schemaHasRules=Up;function mw(e,i){if(typeof e=="boolean")return!e;for(let t in e)if(t!=="$ref"&&i.all[t])return!0;return!1}de.schemaHasRulesButRef=mw;function hw({topSchemaRef:e,schemaPath:i},t,n,r){if(!r){if(typeof t=="number"||typeof t=="boolean")return t;if(typeof t=="string")return(0,Ee._)`${t}`}return(0,Ee._)`${e}${i}${(0,Ee.getProperty)(n)}`}de.schemaRefOrVal=hw;function gw(e){return zp(decodeURIComponent(e))}de.unescapeFragment=gw;function _w(e){return encodeURIComponent(Cl(e))}de.escapeFragment=_w;function Cl(e){return typeof e=="number"?`${e}`:e.replace(/~/g,"~0").replace(/\//g,"~1")}de.escapeJsonPointer=Cl;function zp(e){return e.replace(/~1/g,"/").replace(/~0/g,"~")}de.unescapeJsonPointer=zp;function yw(e,i){if(Array.isArray(e))for(let t of e)i(t);else i(e)}de.eachItem=yw;function Bp({mergeNames:e,mergeToName:i,mergeValues:t,resultToName:n}){return(r,o,a,s)=>{let l=a===void 0?o:a instanceof Ee.Name?(o instanceof Ee.Name?e(r,o,a):i(r,o,a),a):o instanceof Ee.Name?(i(r,a,o),o):t(o,a);return s===Ee.Name&&!(l instanceof Ee.Name)?n(r,l):l}}de.mergeEvaluated={props:Bp({mergeNames:(e,i,t)=>e.if((0,Ee._)`${t} !== true && ${i} !== undefined`,()=>{e.if((0,Ee._)`${i} === true`,()=>e.assign(t,!0),()=>e.assign(t,(0,Ee._)`${t} || {}`).code((0,Ee._)`Object.assign(${t}, ${i})`))}),mergeToName:(e,i,t)=>e.if((0,Ee._)`${t} !== true`,()=>{i===!0?e.assign(t,!0):(e.assign(t,(0,Ee._)`${t} || {}`),xl(e,t,i))}),mergeValues:(e,i)=>e===!0?!0:X(X({},e),i),resultToName:Hp}),items:Bp({mergeNames:(e,i,t)=>e.if((0,Ee._)`${t} !== true && ${i} !== undefined`,()=>e.assign(t,(0,Ee._)`${i} === true ? true : ${t} > ${i} ? ${t} : ${i}`)),mergeToName:(e,i,t)=>e.if((0,Ee._)`${t} !== true`,()=>e.assign(t,i===!0?!0:(0,Ee._)`${t} > ${i} ? ${t} : ${i}`)),mergeValues:(e,i)=>e===!0?!0:Math.max(e,i),resultToName:(e,i)=>e.var("items",i)})};function Hp(e,i){if(i===!0)return e.var("props",!0);let t=e.var("props",(0,Ee._)`{}`);return i!==void 0&&xl(e,t,i),t}de.evaluatedPropsToName=Hp;function xl(e,i,t){Object.keys(t).forEach(n=>e.assign((0,Ee._)`${i}${(0,Ee.getProperty)(n)}`,!0))}de.setEvaluated=xl;var Rp={};function bw(e,i){return e.scopeValue("func",{ref:i,code:Rp[i.code]||(Rp[i.code]=new dw._Code(i.code))})}de.useFunc=bw;var vl=function(e){return e[e.Num=0]="Num",e[e.Str=1]="Str",e}(vl||(de.Type=vl={}));function vw(e,i,t){if(e instanceof Ee.Name){let n=i===vl.Num;return t?n?(0,Ee._)`"[" + ${e} + "]"`:(0,Ee._)`"['" + ${e} + "']"`:n?(0,Ee._)`"/" + ${e}`:(0,Ee._)`"/" + ${e}.replace(/~/g, "~0").replace(/\\//g, "~1")`}return t?(0,Ee.getProperty)(e).toString():"/"+Cl(e)}de.getErrorPath=vw;function Wp(e,i,t=e.opts.strictSchema){if(t){if(i=`strict mode: ${i}`,t===!0)throw new Error(i);e.self.logger.warn(i)}}de.checkStrictMode=Wp});var Vt=g(wl=>{"use strict";Object.defineProperty(wl,"__esModule",{value:!0});var ot=ee(),Cw={data:new ot.Name("data"),valCxt:new ot.Name("valCxt"),instancePath:new ot.Name("instancePath"),parentData:new ot.Name("parentData"),parentDataProperty:new ot.Name("parentDataProperty"),rootData:new ot.Name("rootData"),dynamicAnchors:new ot.Name("dynamicAnchors"),vErrors:new ot.Name("vErrors"),errors:new ot.Name("errors"),this:new ot.Name("this"),self:new ot.Name("self"),scope:new ot.Name("scope"),json:new ot.Name("json"),jsonPos:new ot.Name("jsonPos"),jsonLen:new ot.Name("jsonLen"),jsonPart:new ot.Name("jsonPart")};wl.default=Cw});var Mr=g(at=>{"use strict";Object.defineProperty(at,"__esModule",{value:!0});at.extendErrors=at.resetErrorsCount=at.reportExtraError=at.reportError=at.keyword$DataError=at.keywordError=void 0;var ye=ee(),Sa=pe(),gt=Vt();at.keywordError={message:({keyword:e})=>(0,ye.str)`must pass "${e}" keyword validation`};at.keyword$DataError={message:({keyword:e,schemaType:i})=>i?(0,ye.str)`"${e}" keyword must be ${i} ($data)`:(0,ye.str)`"${e}" keyword is invalid ($data)`};function xw(e,i=at.keywordError,t,n){let{it:r}=e,{gen:o,compositeRule:a,allErrors:s}=r,l=Jp(e,i,t);n??(a||s)?Kp(o,l):Gp(r,(0,ye._)`[${l}]`)}at.reportError=xw;function ww(e,i=at.keywordError,t){let{it:n}=e,{gen:r,compositeRule:o,allErrors:a}=n,s=Jp(e,i,t);Kp(r,s),o||a||Gp(n,gt.default.vErrors)}at.reportExtraError=ww;function Iw(e,i){e.assign(gt.default.errors,i),e.if((0,ye._)`${gt.default.vErrors} !== null`,()=>e.if(i,()=>e.assign((0,ye._)`${gt.default.vErrors}.length`,i),()=>e.assign(gt.default.vErrors,null)))}at.resetErrorsCount=Iw;function Sw({gen:e,keyword:i,schemaValue:t,data:n,errsCount:r,it:o}){if(r===void 0)throw new Error("ajv implementation error");let a=e.name("err");e.forRange("i",r,gt.default.errors,s=>{e.const(a,(0,ye._)`${gt.default.vErrors}[${s}]`),e.if((0,ye._)`${a}.instancePath === undefined`,()=>e.assign((0,ye._)`${a}.instancePath`,(0,ye.strConcat)(gt.default.instancePath,o.errorPath))),e.assign((0,ye._)`${a}.schemaPath`,(0,ye.str)`${o.errSchemaPath}/${i}`),o.opts.verbose&&(e.assign((0,ye._)`${a}.schema`,t),e.assign((0,ye._)`${a}.data`,n))})}at.extendErrors=Sw;function Kp(e,i){let t=e.const("err",i);e.if((0,ye._)`${gt.default.vErrors} === null`,()=>e.assign(gt.default.vErrors,(0,ye._)`[${t}]`),(0,ye._)`${gt.default.vErrors}.push(${t})`),e.code((0,ye._)`${gt.default.errors}++`)}function Gp(e,i){let{gen:t,validateName:n,schemaEnv:r}=e;r.$async?t.throw((0,ye._)`new ${e.ValidationError}(${i})`):(t.assign((0,ye._)`${n}.errors`,i),t.return(!1))}var mn={keyword:new ye.Name("keyword"),schemaPath:new ye.Name("schemaPath"),params:new ye.Name("params"),propertyName:new ye.Name("propertyName"),message:new ye.Name("message"),schema:new ye.Name("schema"),parentSchema:new ye.Name("parentSchema")};function Jp(e,i,t){let{createErrors:n}=e.it;return n===!1?(0,ye._)`{}`:$w(e,i,t)}function $w(e,i,t={}){let{gen:n,it:r}=e,o=[Ew(r,t),Pw(e,t)];return Tw(e,i,o),n.object(...o)}function Ew({errorPath:e},{instancePath:i}){let t=i?(0,ye.str)`${e}${(0,Sa.getErrorPath)(i,Sa.Type.Str)}`:e;return[gt.default.instancePath,(0,ye.strConcat)(gt.default.instancePath,t)]}function Pw({keyword:e,it:{errSchemaPath:i}},{schemaPath:t,parentSchema:n}){let r=n?i:(0,ye.str)`${i}/${e}`;return t&&(r=(0,ye.str)`${r}${(0,Sa.getErrorPath)(t,Sa.Type.Str)}`),[mn.schemaPath,r]}function Tw(e,{params:i,message:t},n){let{keyword:r,data:o,schemaValue:a,it:s}=e,{opts:l,propertyName:u,topSchemaRef:c,schemaPath:p}=s;n.push([mn.keyword,r],[mn.params,typeof i=="function"?i(e):i||(0,ye._)`{}`]),l.messages&&n.push([mn.message,typeof t=="function"?t(e):t]),l.verbose&&n.push([mn.schema,a],[mn.parentSchema,(0,ye._)`${c}${p}`],[gt.default.data,o]),u&&n.push([mn.propertyName,u])}});var Yp=g(Rn=>{"use strict";Object.defineProperty(Rn,"__esModule",{value:!0});Rn.boolOrEmptySchema=Rn.topBoolOrEmptySchema=void 0;var kw=Mr(),Mw=ee(),Ow=Vt(),Dw={message:"boolean schema is false"};function Nw(e){let{gen:i,schema:t,validateName:n}=e;t===!1?Xp(e,!1):typeof t=="object"&&t.$async===!0?i.return(Ow.default.data):(i.assign((0,Mw._)`${n}.errors`,null),i.return(!0))}Rn.topBoolOrEmptySchema=Nw;function Aw(e,i){let{gen:t,schema:n}=e;n===!1?(t.var(i,!1),Xp(e)):t.var(i,!0)}Rn.boolOrEmptySchema=Aw;function Xp(e,i){let{gen:t,data:n}=e,r={gen:t,keyword:"false schema",data:n,schema:!1,schemaCode:!1,schemaValue:!1,params:{},it:e};(0,kw.reportError)(r,Dw,void 0,i)}});var Il=g(Ln=>{"use strict";Object.defineProperty(Ln,"__esModule",{value:!0});Ln.getRules=Ln.isJSONType=void 0;var Fw=["string","number","integer","boolean","null","object","array"],qw=new Set(Fw);function jw(e){return typeof e=="string"&&qw.has(e)}Ln.isJSONType=jw;function Vw(){let e={number:{type:"number",rules:[]},string:{type:"string",rules:[]},array:{type:"array",rules:[]},object:{type:"object",rules:[]}};return{types:$e(X({},e),{integer:!0,boolean:!0,null:!0}),rules:[{rules:[]},e.number,e.string,e.array,e.object],post:{rules:[]},all:{},keywords:{}}}Ln.getRules=Vw});var Sl=g(Li=>{"use strict";Object.defineProperty(Li,"__esModule",{value:!0});Li.shouldUseRule=Li.shouldUseGroup=Li.schemaHasRulesForType=void 0;function Bw({schema:e,self:i},t){let n=i.RULES.types[t];return n&&n!==!0&&Qp(e,n)}Li.schemaHasRulesForType=Bw;function Qp(e,i){return i.rules.some(t=>Zp(e,t))}Li.shouldUseGroup=Qp;function Zp(e,i){var t;return e[i.keyword]!==void 0||((t=i.definition.implements)===null||t===void 0?void 0:t.some(n=>e[n]!==void 0))}Li.shouldUseRule=Zp});var Or=g(st=>{"use strict";Object.defineProperty(st,"__esModule",{value:!0});st.reportTypeError=st.checkDataTypes=st.checkDataType=st.coerceAndCheckDataType=st.getJSONTypes=st.getSchemaTypes=st.DataType=void 0;var Rw=Il(),Lw=Sl(),Uw=Mr(),ae=ee(),ef=pe(),Un=function(e){return e[e.Correct=0]="Correct",e[e.Wrong=1]="Wrong",e}(Un||(st.DataType=Un={}));function zw(e){let i=tf(e.type);if(i.includes("null")){if(e.nullable===!1)throw new Error("type: null contradicts nullable: false")}else{if(!i.length&&e.nullable!==void 0)throw new Error('"nullable" cannot be used without "type"');e.nullable===!0&&i.push("null")}return i}st.getSchemaTypes=zw;function tf(e){let i=Array.isArray(e)?e:e?[e]:[];if(i.every(Rw.isJSONType))return i;throw new Error("type must be JSONType or JSONType[]: "+i.join(","))}st.getJSONTypes=tf;function Hw(e,i){let{gen:t,data:n,opts:r}=e,o=Ww(i,r.coerceTypes),a=i.length>0&&!(o.length===0&&i.length===1&&(0,Lw.schemaHasRulesForType)(e,i[0]));if(a){let s=El(i,n,r.strictNumbers,Un.Wrong);t.if(s,()=>{o.length?Kw(e,i,o):Pl(e)})}return a}st.coerceAndCheckDataType=Hw;var nf=new Set(["string","number","integer","boolean","null"]);function Ww(e,i){return i?e.filter(t=>nf.has(t)||i==="array"&&t==="array"):[]}function Kw(e,i,t){let{gen:n,data:r,opts:o}=e,a=n.let("dataType",(0,ae._)`typeof ${r}`),s=n.let("coerced",(0,ae._)`undefined`);o.coerceTypes==="array"&&n.if((0,ae._)`${a} == 'object' && Array.isArray(${r}) && ${r}.length == 1`,()=>n.assign(r,(0,ae._)`${r}[0]`).assign(a,(0,ae._)`typeof ${r}`).if(El(i,r,o.strictNumbers),()=>n.assign(s,r))),n.if((0,ae._)`${s} !== undefined`);for(let u of t)(nf.has(u)||u==="array"&&o.coerceTypes==="array")&&l(u);n.else(),Pl(e),n.endIf(),n.if((0,ae._)`${s} !== undefined`,()=>{n.assign(r,s),Gw(e,s)});function l(u){switch(u){case"string":n.elseIf((0,ae._)`${a} == "number" || ${a} == "boolean"`).assign(s,(0,ae._)`"" + ${r}`).elseIf((0,ae._)`${r} === null`).assign(s,(0,ae._)`""`);return;case"number":n.elseIf((0,ae._)`${a} == "boolean" || ${r} === null
3
3
  || (${a} == "string" && ${r} && ${r} == +${r})`).assign(s,(0,ae._)`+${r}`);return;case"integer":n.elseIf((0,ae._)`${a} === "boolean" || ${r} === null
4
4
  || (${a} === "string" && ${r} && ${r} == +${r} && !(${r} % 1))`).assign(s,(0,ae._)`+${r}`);return;case"boolean":n.elseIf((0,ae._)`${r} === "false" || ${r} === 0 || ${r} === null`).assign(s,!1).elseIf((0,ae._)`${r} === "true" || ${r} === 1`).assign(s,!0);return;case"null":n.elseIf((0,ae._)`${r} === "" || ${r} === 0 || ${r} === false`),n.assign(s,null);return;case"array":n.elseIf((0,ae._)`${a} === "string" || ${a} === "number"
@@ -16,7 +16,7 @@ Should be: [ [ object1, pointer1 ], [ object 2, pointer2 ], etc... ]`),r}}static
16
16
  `},t.origin)})}getConfigBlocks(){return this.pluginConfig}updateConfigBlocks(t){for(let n of t)n[this.pluginType]=this.pluginAlias;this.pluginConfig=t}schemaFormUpdated(){if(!(!this.iframe||!this.iframe.contentWindow)){if(this.schemaFormRecentlyRefreshed){this.schemaFormRecentlyRefreshed=!1;return}this.schemaFormRecentlyUpdated=!0,this.iframe.contentWindow.postMessage({action:"stream",event:"configChanged",data:this.pluginConfig},Vi.api.origin)}}schemaFormRefresh(){if(this.schemaFormRecentlyUpdated){this.schemaFormRecentlyUpdated=!1;return}this.schemaFormRecentlyRefreshed=!0,this.showSchemaForm&&(this.showSchemaForm=!1,setTimeout(()=>{this.showSchemaForm=!0}))}formCreate(t,n,r,o,a){return K(this,null,function*(){yield this.formEnd(),this.formId=t,this.formSchema=n,this.formData=r,this.formSubmitButtonLabel=o,this.formCancelButtonLabel=a})}formEnd(){return K(this,null,function*(){this.formId&&(this.formId=void 0,this.formSchema=void 0,this.formData=void 0,this.formSubmitButtonLabel=void 0,this.formCancelButtonLabel=void 0,yield new Promise(t=>setTimeout(t)))})}formUpdated(t){this.iframe.contentWindow.postMessage({action:"stream",event:this.formId,data:{formEvent:"change",formData:t}},Vi.api.origin)}formActionEvent(t){this.iframe.contentWindow.postMessage({action:"stream",event:this.formId,data:{formEvent:t,formData:this.formData}},Vi.api.origin)}handleGetCachedAccessories(t){return K(this,null,function*(){let n=yield ce(this.$api.get("/server/cached-accessories"));return this.requestResponse(t,n.filter(r=>r.plugin===this.plugin.name))})}getChildBridges(){return K(this,null,function*(){try{(yield ce(this.$api.get("/status/homebridge/child-bridges"))).forEach(n=>{this.plugin.name===n.plugin&&this.childBridges.push(n)})}catch(t){console.error(t),this.$toastr.error(t.message,this.$translate.instant("toast.title_error")),this.childBridges=[]}})}static \u0275fac=function(n){return new(n||e)};static \u0275cmp=Q({type:e,selectors:[["ng-component"]],viewQuery:function(n,r){n&1&&Oi(r.customPluginUiElementTarget,c4,5),n&2&&Di()},inputs:{plugin:"plugin",schema:"schema",pluginConfig:"pluginConfig"},decls:24,vars:17,consts:[["custompluginui",""],[1,"modal-content"],[1,"modal-header"],[1,"modal-title"],["type","button","data-bs-dismiss","modal",1,"btn-close",3,"click","disabled"],[1,"modal-body","pb-0",2,"min-height","110px"],[1,"text-center","primary-text"],["width","100%","height","1px;","sandbox","allow-same-origin allow-scripts allow-popups allow-popups-to-escape-sandbox allow-downloads allow-forms",2,"border","0"],[1,"card","card-body"],[1,"loading-overlay","text-center","primary-text","d-flex","align-items-center","justify-content-center"],[1,"modal-footer","justify-content-between"],[1,"text-start"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click","disabled"],[1,"text-center"],[1,"text-end","d-flex","align-items-center","justify-content-end"],["container","modal","placement","top","triggers","hover",1,"fa","fa-fw","fa-xl","me-2",3,"ngClass","ngbTooltip","openDelay"],["type","button","data-bs-dismiss","modal",1,"btn","btn-primary",3,"click","disabled"],[1,"fas","fa-fw","fa-spinner","fa-pulse"],[1,"fa","fa-fw","fa-cog","fa-spin",2,"font-size","75px"],[3,"dataChange","dataChanged","isValid","configSchema","data"],[1,"text-end","custom-form-action-buttons"],[1,"btn","btn-elegant"],[1,"btn","btn-primary",3,"disabled"],[1,"btn","btn-elegant",3,"click"],[1,"btn","btn-primary",3,"click","disabled"]],template:function(n,r){if(n&1){let o=H();f(0,"div",1)(1,"div",2)(2,"h5",3),C(3),m(),f(4,"button",4),w(5,"translate"),j("click",function(){return F(o),q(r.dismissModal())}),m()(),f(6,"div",5),E(7,d4,2,0,"div",6),$(8,"iframe",7,0),E(10,p4,2,2,"div",8),E(11,h4,5,4,"div",8),E(12,g4,2,0,"div",9),m(),f(13,"div",10)(14,"div",11)(15,"button",12),j("click",function(){return F(o),q(r.dismissModal())}),C(16),w(17,"translate"),m()(),$(18,"div",13),f(19,"div",14),E(20,_4,2,5,"i",15),f(21,"button",16),j("click",function(){return F(o),q(r.savePluginConfig(!0))}),E(22,y4,2,3),E(23,b4,1,0,"i",17),m()()()()}n&2&&(d(3),L(r.plugin.displayName||r.plugin.name),d(),b("disabled",r.saveInProgress),G("aria-label",S(5,13,"form.button_close")),d(3),P(r.loading?7:-1),d(3),P(r.uiLoaded&&r.pluginConfig.length&&r.schema.singular&&r.showSchemaForm?10:-1),d(),P(r.formId?11:-1),d(),P(r.pluginSpinner?12:-1),d(3),b("disabled",r.saveInProgress),d(),B(" ",S(17,15,"form.button_close")," "),d(4),P(r.saveButtonDisabled?-1:20),d(),b("disabled",r.saveInProgress||r.saveButtonDisabled),d(),P(r.saveInProgress?-1:22),d(),P(r.saveInProgress?23:-1))},dependencies:[Ks,jn,qt,Ve],styles:[".manage-plugin-config-external-icons[_ngcontent-%COMP%]{font-size:1.5rem;font-weight:700;line-height:1;color:#000;opacity:.5;background-color:transparent;border:0}.loading-overlay[_ngcontent-%COMP%]{position:absolute;inset:16px;background-color:#ffffffb3} body.dark-mode .loading-overlay{background-color:#242424b3}.custom-form-action-buttons[_ngcontent-%COMP%] button[_ngcontent-%COMP%]:last-child{margin-right:2px}"]})}return e})();var hx=(()=>{class e{$api=k(ve);$modal=k(et);plugins={};openSettings(t,n){return K(this,null,function*(){let r=yield this.loadPluginConfig(t.name),o=this.$modal.open(this.plugins[t.name],{size:"lg",backdrop:"static"});return o.componentInstance.plugin=t,o.componentInstance.schema=n,o.componentInstance.pluginConfig=r,o.result.catch(()=>{})})}openCustomSettingsUi(t,n){return K(this,null,function*(){let r=yield this.loadPluginConfig(t.name),o=this.$modal.open(mx,{size:"lg",backdrop:"static"});return o.componentInstance.plugin=t,o.componentInstance.schema=n,o.componentInstance.pluginConfig=r,o.result.catch(()=>{})})}loadPluginConfig(t){return K(this,null,function*(){return ce(this.$api.get(`/config-editor/plugin/${encodeURIComponent(t)}`))})}static \u0275fac=function(n){return new(n||e)};static \u0275prov=Tt({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();var vx=Me(wp(),1),Cx=Me(Ip(),1),xx=Me(Sp(),1),wx=Me($r(),1);var gx=Me($r(),1);var v4=["pluginlogoutput"],_x=(()=>{class e{$activeModal=k(je);$api=k(ve);$log=k(kp);$modal=k(et);$toastr=k(we);$translate=k(xe);resizeEvent=new Pt;pluginAlias;plugin;termTarget=Ai("pluginlogoutput");onWindowResize(){this.resizeEvent.next(void 0)}ngOnInit(){this.getPluginLog()}downloadLogFile(){let t=this.$modal.open(xp,{size:"lg",backdrop:"static"});t.componentInstance.title=this.$translate.instant("logs.title_download_log_file"),t.componentInstance.message=this.$translate.instant("logs.download_warning"),t.componentInstance.confirmButtonLabel=this.$translate.instant("form.button_download"),t.componentInstance.faIconClass="fas fa-fw fa-user-secret primary-text",t.result.then(()=>{this.$api.get("/platform-tools/hb-service/log/download?colour=yes",{observe:"response",responseType:"text"}).subscribe({next:n=>{if(!n.body)return;let r=n.body.split(`
17
17
  `),o="",a=!1;r.forEach(s=>{if(s){if(a)if(s.match(/36m\[.*?\]/))a=!1;else{o+=`${s.replace(/\x1B\[(\d{1,3}(;\d{1,2})?)?[mGK]/g,"")}\r
18
18
  `;return}s.includes(`36m[${this.pluginAlias}]`)&&(o+=`${s.replace(/\x1B\[(\d{1,3}(;\d{1,2})?)?[mGK]/g,"")}\r
19
- `,a=!0)}}),(0,gx.saveAs)(new Blob([o],{type:"text/plain;charset=utf-8"}),`${this.plugin.name}.log.txt`)},error:n=>K(this,null,function*(){let r;try{r=JSON.parse(yield n.error.text()).message}catch(o){console.error(o)}this.$toastr.error(r||this.$translate.instant("logs.download.error"),this.$translate.instant("toast.title_error"))})})}).catch(()=>{})}ngOnDestroy(){this.$log.destroyTerminal()}dismissModal(){this.$activeModal.dismiss("Dismiss")}getPluginLog(){this.$api.get(`/config-editor/plugin/${encodeURIComponent(this.plugin.name)}`).subscribe({next:t=>{this.pluginAlias=this.plugin.name==="homebridge-config-ui-x"?"Homebridge UI":t[0]?.name||this.plugin.name,this.$log.startTerminal(this.termTarget(),{},this.resizeEvent,this.pluginAlias)},error:t=>{console.error(t),this.$toastr.error(t.error?.message||t.message,this.$translate.instant("toast.title_error")),this.$activeModal.dismiss()}})}static \u0275fac=function(n){return new(n||e)};static \u0275cmp=Q({type:e,selectors:[["ng-component"]],viewQuery:function(n,r){n&1&&Oi(r.termTarget,v4,5),n&2&&Di()},hostBindings:function(n,r){n&1&&j("resize",function(a){return r.onWindowResize(a)},Yd)},inputs:{plugin:"plugin"},decls:20,vars:13,consts:[["pluginlogoutput",""],[1,"modal-content"],[1,"modal-header"],[1,"modal-title"],["type","button","data-bs-dismiss","modal",1,"btn-close",3,"click"],[1,"modal-body","d-flex","flex-row","flex-grow-1","w-100","p-0"],[1,"w-100","bg-black","plugin-log-output","terminal","align-self-end","w-100","h-100","mb-0","p-2"],[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"],[1,"btn","btn-primary",3,"click"]],template:function(n,r){if(n&1){let o=H();ri(0,"div",1)(1,"div",2)(2,"h5",3),C(3),oi(),ri(4,"button",4),w(5,"translate"),Mi("click",function(){return F(o),q(r.dismissModal())}),oi()(),ri(6,"div",5),an(7,"div",6,0),oi(),ri(9,"div",7)(10,"div",8)(11,"button",9),w(12,"translate"),Mi("click",function(){return F(o),q(r.dismissModal())}),C(13),w(14,"translate"),oi()(),an(15,"div",10),ri(16,"div",11)(17,"button",12),Mi("click",function(){return F(o),q(r.downloadLogFile())}),C(18),w(19,"translate"),oi()()()()}n&2&&(d(3),L(r.plugin.displayName||r.plugin.name),d(),G("aria-label",S(5,5,"form.button_close")),d(7),G("aria-label",S(12,7,"form.button_close")),d(2),B(" ",S(14,9,"form.button_close")," "),d(5),L(S(19,11,"form.button_download")))},dependencies:[Ve],encapsulation:2})}return e})();var yx=Me(pa(),1);var Ad=()=>({app:"Homebridge v2"});function C4(e,i){e&1&&(f(0,"div",5),$(1,"i",12),m())}function x4(e,i){e&1&&(f(0,"p",9),C(1,"All your plugins are marked as compatible with Homebridge v2."),m())}function w4(e,i){e&1&&(f(0,"p",9),C(1,"To ignore this warning and continue with the update, click continue below."),m())}function I4(e,i){if(e&1&&(f(0,"p",9),C(1," Some of your plugins are not explicitly marked as compatible with Homebridge v2. This does "),f(2,"span",17),C(3,"not"),m(),C(4," necessarily mean that they won't work. We just can't guarantee that they will. "),m(),f(5,"p",9),C(6," For more information about this update, please see the "),f(7,"a",18),C(8,"wiki page"),m(),C(9,". "),m(),E(10,w4,2,0,"p",9)),e&2){let t=_(2);d(10),P(t.isUpdating?10:-1)}}function S4(e,i){e&1&&(f(0,"div",19),C(1," Node.js Version"),$(2,"br"),f(3,"span",20),C(4),w(5,"translate"),m()(),f(6,"div",21),$(7,"i",22),m()),e&2&&(d(4),L(Ue(5,1,"status.readiness.node_yes",Te(4,Ad))))}function $4(e,i){e&1&&(f(0,"div",19),C(1," Node.js Version"),$(2,"br"),f(3,"span",20),C(4),w(5,"translate"),m(),$(6,"br"),f(7,"a",23),C(8),w(9,"translate"),$(10,"i",24),m()(),f(11,"div",21),$(12,"i",25),m()),e&2&&(d(4),L(Ue(5,2,"status.readiness.node_no",Te(7,Ad))),d(4),B(" ",S(9,5,"plugins.compat.node_link")," "))}function E4(e,i){e&1&&$(0,"i",26)}function P4(e,i){e&1&&$(0,"i",27)}function T4(e,i){if(e&1&&(f(0,"li",16)(1,"div",19),C(2),m(),f(3,"div",21),E(4,E4,1,0,"i",26),E(5,P4,1,0,"i",27),m()()),e&2){let t=i.$implicit;d(2),L(t.displayName),d(2),P(t.hb2Ready==="supported"?4:-1),d(),P(t.hb2Ready==="unknown"?5:-1)}}function k4(e,i){if(e&1&&(f(0,"div",13),$(1,"img",14),m(),E(2,x4,2,0,"p",9),E(3,I4,11,1),f(4,"ul",15)(5,"li",16),E(6,S4,8,5)(7,$4,13,8),m(),pt(8,T4,6,3,"li",16,dt),m()),e&2){let t=_();d(2),P(t.allPluginsSupported?2:-1),d(),P(t.allPluginsSupported?-1:3),d(3),P(t.nodeReady?6:7),d(2),ft(t.installedPlugins)}}function M4(e,i){if(e&1){let t=H();f(0,"button",28),w(1,"translate"),j("click",function(){F(t);let r=_();return q(r.closeModal("Dismiss"))}),C(2),w(3,"translate"),m()}e&2&&(G("aria-label",S(1,2,"form.button_close")),d(2),B(" ",S(3,4,"form.button_close")," "))}function O4(e,i){if(e&1){let t=H();f(0,"button",28),w(1,"translate"),j("click",function(){F(t);let r=_();return q(r.closeModal("Dismiss"))}),C(2),w(3,"translate"),m()}e&2&&(G("aria-label",S(1,2,"form.button_close")),d(2),B(" ",S(3,4,"form.button_close")," "))}function D4(e,i){if(e&1){let t=H();f(0,"button",29),j("click",function(){F(t);let r=_();return q(r.closeModal("update"))}),C(1),w(2,"translate"),m()}if(e&2){let t=_();b("disabled",t.loading),d(),B(" ",S(2,2,"form.button_continue")," ")}}var bx=(()=>{class e{$activeModal=k(je);$api=k(ve);$settings=k(Be);$toastr=k(we);$translate=k(xe);$ws=k(Bi);io;isUpdating=!1;skipIfCompatible=!0;loading=!0;installedPlugins=[];allPluginsSupported=!0;nodeReady=!1;ngOnInit(){return K(this,null,function*(){this.io=this.$ws.getExistingNamespace("status"),this.io.socket.connected&&(yield this.checkHomebridgeUiVersion()),yield this.loadInstalledPlugins(),this.loading=!1})}checkHomebridgeUiVersion(){return K(this,null,function*(){try{let{nodeVersion:t}=yield ce(this.io.request("get-homebridge-server-info"));this.nodeReady=(0,yx.satisfies)(t,">=20")}catch(t){console.error(t),this.$toastr.error(t.message,this.$translate.instant("toast.title_error"))}})}loadInstalledPlugins(){return K(this,null,function*(){this.installedPlugins=[],this.loading=!0;let t=this.$settings.env.homebridgeVersion.split(".")[0];try{let n=yield ce(this.$api.get("/plugins"));this.installedPlugins=n.filter(r=>r.name!=="homebridge-config-ui-x").map(r=>{let o=r.engines?.homebridge?.split("||").map(s=>s.trim())||[],a=t==="2"?"hide":o.some(s=>s.startsWith("^2")||s.startsWith(">=2"))?"supported":"unknown";return a==="unknown"&&(this.allPluginsSupported=!1),$e(X({},r),{hb2Ready:a})}).sort((r,o)=>r.name.localeCompare(o.name)),this.skipIfCompatible&&this.installedPlugins.length===0&&this.$activeModal.close("update")}catch(n){console.error(n),this.$toastr.error(this.$translate.instant("plugins.toast_failed_to_load_plugins"),this.$translate.instant("toast.title_error"))}})}closeModal(t){this.$activeModal.close(t)}static \u0275fac=function(n){return new(n||e)};static \u0275cmp=Q({type:e,selectors:[["ng-component"]],inputs:{isUpdating:"isUpdating",skipIfCompatible:"skipIfCompatible"},decls:17,vars:13,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,"w-100","text-center","primary-text"],[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"],["type","button","data-bs-dismiss","modal",1,"btn","btn-primary",3,"disabled"],[1,"fa","fa-fw","fa-cog","fa-spin",2,"font-size","75px"],[1,"text-center","mb-3"],["ngSrc","assets/hb-icon.png","alt","","height","100","width","100",1,"plugin-icon-card"],[1,"list-group","list-group-box","mb-0"],[1,"list-group-item","d-flex","justify-content-between","align-items-center"],[1,"fw-bold"],["href","https://github.com/homebridge/homebridge/wiki/Updating-To-Homebridge-v2.0","target","_blank"],[1,"text-start","flex-grow-1"],[1,"grey-text"],[1,"ms-3"],[1,"fas","fa-check-circle","green-text","fa-xl"],["href","https://github.com/homebridge/homebridge/wiki/How-To-Update-Node.js","target","_blank","rel","noopener noreferrer",1,"small"],[1,"fa","fa-fw","fa-external-link-alt"],[1,"fas","fa-exclamation-circle","orange-text","fa-xl"],["aria-label","The developer has specifically marked this plugin as compatible with Homebridge v2.",1,"fas","fa-check-circle","green-text","fa-xl"],["aria-label","The developer has not specifically marked this plugin as compatible with Homebridge v2, but it may still work.",1,"fas","fa-question-circle","orange-text","fa-xl"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click"],["type","button","data-bs-dismiss","modal",1,"btn","btn-primary",3,"click","disabled"]],template:function(n,r){n&1&&(f(0,"div",0)(1,"div",1)(2,"h5",2),C(3),w(4,"translate"),m(),f(5,"button",3),w(6,"translate"),j("click",function(){return r.closeModal("Dismiss")}),m()(),f(7,"div",4),E(8,C4,2,0,"div",5),E(9,k4,10,3),m(),f(10,"div",6)(11,"div",7),E(12,M4,4,6,"button",8),m(),f(13,"div",9),E(14,O4,4,6,"button",8),m(),f(15,"div",10),E(16,D4,3,4,"button",11),m()()()),n&2&&(d(3),L(Ue(4,7,"status.readiness.title",Te(12,Ad))),d(2),G("aria-label",S(6,10,"form.button_close")),d(3),P(r.loading?8:-1),d(),P(r.loading?-1:9),d(3),P(r.isUpdating?12:-1),d(2),P(r.isUpdating?-1:14),d(2),P(r.isUpdating?16:-1))},dependencies:[ap,Ve],encapsulation:2})}return e})();var A4=(e,i)=>({iconStar:e,iconThumbsUp:i}),Ix=(e,i,t,n)=>({"fa-arrow-alt-circle-down":e,"fa-code-compare":i,"fa-arrow-alt-circle-up":t,"fa-trash":n}),F4=()=>["homebridge","homebridge-config-ui-x"],q4=e=>({pluginName:e});function j4(e,i){e&1&&(f(0,"p",13),C(1),w(2,"translate"),m()),e&2&&(d(),L(S(2,1,"plugins.settings.restart_required")))}function V4(e,i){e&1&&(f(0,"p",13),C(1),w(2,"translate"),m()),e&2&&(d(),L(S(2,1,"restart.child_bridges")))}function B4(e,i){if(e&1&&($(0,"p",12),w(1,"translate"),E(2,j4,3,3,"p",13),E(3,V4,3,3,"p",13)),e&2){let t=_(3);b("innerHTML",Ue(1,3,"plugins.manage.github_support",ln(6,A4,t.iconStar,t.iconThumbsUp)),he),d(2),P(t.childBridges.length===0?2:-1),d(),P(t.childBridges.length>0?3:-1)}}function R4(e,i){if(e&1&&(f(0,"div",9),$(1,"i",10),m(),f(2,"h5",11),C(3),m(),E(4,B4,4,9)),e&2){let t=_(2);d(3),ra("",t.pastTenseVerb,": ",t.pluginDisplayName," (",t.targetVersionPretty,")"),d(),P(t.isDisabled?-1:4)}}function L4(e,i){if(e&1&&(f(0,"div",6),E(1,R4,5,4),m()),e&2){let t=_();d(),P(t.justUpdatedPlugin?1:-1)}}function U4(e,i){if(e&1&&(f(0,"div",7)(1,"div",9),$(2,"i",14),m(),f(3,"ul",15)(4,"li"),C(5),w(6,"translate"),m(),f(7,"li"),C(8),w(9,"translate"),m()(),f(10,"pre",16),C(11),m()()),e&2){let t=_();d(2),b("ngClass",Nn(9,Ix,t.action==="Install",t.action==="Update"&&t.installedVersion,t.action==="Update"&&!t.installedVersion,t.action==="Uninstall")),d(3),L(S(6,5,"plugins.manage.online_updates")),d(3),L(S(9,7,"plugins.manage.manual_update_command")),d(3),sn(`hb-service stop
19
+ `,a=!0)}}),(0,gx.saveAs)(new Blob([o],{type:"text/plain;charset=utf-8"}),`${this.plugin.name}.log.txt`)},error:n=>K(this,null,function*(){let r;try{r=JSON.parse(yield n.error.text()).message}catch(o){console.error(o)}this.$toastr.error(r||this.$translate.instant("logs.download.error"),this.$translate.instant("toast.title_error"))})})}).catch(()=>{})}ngOnDestroy(){this.$log.destroyTerminal()}dismissModal(){this.$activeModal.dismiss("Dismiss")}getPluginLog(){this.$api.get(`/config-editor/plugin/${encodeURIComponent(this.plugin.name)}`).subscribe({next:t=>{this.pluginAlias=this.plugin.name==="homebridge-config-ui-x"?"Homebridge UI":t[0]?.name||this.plugin.name,this.$log.startTerminal(this.termTarget(),{},this.resizeEvent,this.pluginAlias)},error:t=>{console.error(t),this.$toastr.error(t.error?.message||t.message,this.$translate.instant("toast.title_error")),this.$activeModal.dismiss()}})}static \u0275fac=function(n){return new(n||e)};static \u0275cmp=Q({type:e,selectors:[["ng-component"]],viewQuery:function(n,r){n&1&&Oi(r.termTarget,v4,5),n&2&&Di()},hostBindings:function(n,r){n&1&&j("resize",function(a){return r.onWindowResize(a)},Yd)},inputs:{plugin:"plugin"},decls:20,vars:13,consts:[["pluginlogoutput",""],[1,"modal-content"],[1,"modal-header"],[1,"modal-title"],["type","button","data-bs-dismiss","modal",1,"btn-close",3,"click"],[1,"modal-body","d-flex","flex-row","flex-grow-1","w-100","p-0"],[1,"w-100","bg-black","plugin-log-output","terminal","align-self-end","w-100","h-100","mb-0","p-2"],[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"],[1,"btn","btn-primary",3,"click"]],template:function(n,r){if(n&1){let o=H();ri(0,"div",1)(1,"div",2)(2,"h5",3),C(3),oi(),ri(4,"button",4),w(5,"translate"),Mi("click",function(){return F(o),q(r.dismissModal())}),oi()(),ri(6,"div",5),an(7,"div",6,0),oi(),ri(9,"div",7)(10,"div",8)(11,"button",9),w(12,"translate"),Mi("click",function(){return F(o),q(r.dismissModal())}),C(13),w(14,"translate"),oi()(),an(15,"div",10),ri(16,"div",11)(17,"button",12),Mi("click",function(){return F(o),q(r.downloadLogFile())}),C(18),w(19,"translate"),oi()()()()}n&2&&(d(3),L(r.plugin.displayName||r.plugin.name),d(),G("aria-label",S(5,5,"form.button_close")),d(7),G("aria-label",S(12,7,"form.button_close")),d(2),B(" ",S(14,9,"form.button_close")," "),d(5),L(S(19,11,"form.button_download")))},dependencies:[Ve],encapsulation:2})}return e})();var yx=Me(pa(),1);var Ad=()=>({app:"Homebridge v2"});function C4(e,i){e&1&&(f(0,"div",5),$(1,"i",12),m())}function x4(e,i){e&1&&(f(0,"p",9),C(1,"All your plugins are marked as compatible with Homebridge v2."),m())}function w4(e,i){e&1&&(f(0,"p",9),C(1,"To ignore this warning and continue with the update, click continue below."),m())}function I4(e,i){if(e&1&&(f(0,"p",9),C(1," Some of your plugins are not explicitly marked as compatible with Homebridge v2. This does "),f(2,"span",17),C(3,"not"),m(),C(4," necessarily mean that they won't work. We just can't guarantee that they will. "),m(),f(5,"p",9),C(6," For more information about this update, please see the "),f(7,"a",18),C(8,"wiki page"),m(),C(9,". "),m(),E(10,w4,2,0,"p",9)),e&2){let t=_(2);d(10),P(t.isUpdating?10:-1)}}function S4(e,i){e&1&&(f(0,"div",19),C(1," Node.js Version"),$(2,"br"),f(3,"span",20),C(4),w(5,"translate"),m()(),f(6,"div",21),$(7,"i",22),m()),e&2&&(d(4),L(Ue(5,1,"status.readiness.node_yes",Te(4,Ad))))}function $4(e,i){e&1&&(f(0,"div",19),C(1," Node.js Version"),$(2,"br"),f(3,"span",20),C(4),w(5,"translate"),m(),$(6,"br"),f(7,"a",23),C(8),w(9,"translate"),$(10,"i",24),m()(),f(11,"div",21),$(12,"i",25),m()),e&2&&(d(4),L(Ue(5,2,"status.readiness.node_no",Te(7,Ad))),d(4),B(" ",S(9,5,"plugins.compat.node_link")," "))}function E4(e,i){e&1&&$(0,"i",26)}function P4(e,i){e&1&&$(0,"i",27)}function T4(e,i){if(e&1&&(f(0,"li",16)(1,"div",19),C(2),m(),f(3,"div",21),E(4,E4,1,0,"i",26),E(5,P4,1,0,"i",27),m()()),e&2){let t=i.$implicit;d(2),L(t.displayName),d(2),P(t.hb2Ready==="supported"?4:-1),d(),P(t.hb2Ready==="unknown"?5:-1)}}function k4(e,i){if(e&1&&(f(0,"div",13),$(1,"img",14),m(),E(2,x4,2,0,"p",9),E(3,I4,11,1),f(4,"ul",15)(5,"li",16),E(6,S4,8,5)(7,$4,13,8),m(),pt(8,T4,6,3,"li",16,dt),m()),e&2){let t=_();d(2),P(t.allPluginsSupported?2:-1),d(),P(t.allPluginsSupported?-1:3),d(3),P(t.nodeReady?6:7),d(2),ft(t.installedPlugins)}}function M4(e,i){if(e&1){let t=H();f(0,"button",28),w(1,"translate"),j("click",function(){F(t);let r=_();return q(r.closeModal("Dismiss"))}),C(2),w(3,"translate"),m()}e&2&&(G("aria-label",S(1,2,"form.button_close")),d(2),B(" ",S(3,4,"form.button_close")," "))}function O4(e,i){if(e&1){let t=H();f(0,"button",28),w(1,"translate"),j("click",function(){F(t);let r=_();return q(r.closeModal("Dismiss"))}),C(2),w(3,"translate"),m()}e&2&&(G("aria-label",S(1,2,"form.button_close")),d(2),B(" ",S(3,4,"form.button_close")," "))}function D4(e,i){if(e&1){let t=H();f(0,"button",29),j("click",function(){F(t);let r=_();return q(r.closeModal("update"))}),C(1),w(2,"translate"),m()}if(e&2){let t=_();b("disabled",t.loading),d(),B(" ",S(2,2,"form.button_continue")," ")}}var bx=(()=>{class e{$activeModal=k(je);$api=k(ve);$settings=k(Be);$toastr=k(we);$translate=k(xe);$ws=k(Bi);io;isUpdating=!1;skipIfCompatible=!0;loading=!0;installedPlugins=[];allPluginsSupported=!0;nodeReady=!1;ngOnInit(){return K(this,null,function*(){this.io=this.$ws.getExistingNamespace("status"),this.io.socket.connected&&(yield this.checkHomebridgeUiVersion()),yield this.loadInstalledPlugins(),this.loading=!1})}checkHomebridgeUiVersion(){return K(this,null,function*(){try{let{nodeVersion:t}=yield ce(this.io.request("get-homebridge-server-info"));this.nodeReady=(0,yx.satisfies)(t,">=20")}catch(t){console.error(t),this.$toastr.error(t.message,this.$translate.instant("toast.title_error"))}})}loadInstalledPlugins(){return K(this,null,function*(){this.installedPlugins=[],this.loading=!0;let t=this.$settings.env.homebridgeVersion.split(".")[0];try{let n=yield ce(this.$api.get("/plugins"));this.installedPlugins=n.filter(r=>r.name!=="homebridge-config-ui-x").map(r=>{let o=r.engines?.homebridge?.split("||").map(s=>s.trim())||[],a=t==="2"?"hide":o.some(s=>s.startsWith("^2")||s.startsWith(">=2"))?"supported":"unknown";return a==="unknown"&&(this.allPluginsSupported=!1),$e(X({},r),{hb2Ready:a})}).sort((r,o)=>r.name.localeCompare(o.name)),this.skipIfCompatible&&this.installedPlugins.length===0&&this.$activeModal.close("update")}catch(n){console.error(n),this.$toastr.error(this.$translate.instant("plugins.toast_failed_to_load_plugins"),this.$translate.instant("toast.title_error"))}})}closeModal(t){this.$activeModal.close(t)}static \u0275fac=function(n){return new(n||e)};static \u0275cmp=Q({type:e,selectors:[["ng-component"]],inputs:{isUpdating:"isUpdating",skipIfCompatible:"skipIfCompatible"},decls:17,vars:12,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,"w-100","text-center","primary-text"],[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"],["type","button","data-bs-dismiss","modal",1,"btn","btn-primary",3,"disabled"],[1,"fa","fa-fw","fa-cog","fa-spin",2,"font-size","75px"],[1,"text-center","mb-3"],["ngSrc","assets/hb-icon.png","alt","","height","100","width","100",1,"plugin-icon-card"],[1,"list-group","list-group-box","mb-0"],[1,"list-group-item","d-flex","justify-content-between","align-items-center"],[1,"fw-bold"],["href","https://github.com/homebridge/homebridge/wiki/Updating-To-Homebridge-v2.0","target","_blank"],[1,"text-start","flex-grow-1"],[1,"grey-text"],[1,"ms-3"],[1,"fas","fa-check-circle","green-text","fa-xl"],["href","https://github.com/homebridge/homebridge/wiki/How-To-Update-Node.js","target","_blank","rel","noopener noreferrer",1,"small"],[1,"fa","fa-fw","fa-external-link-alt"],[1,"fas","fa-exclamation-circle","orange-text","fa-xl"],["aria-label","The developer has specifically marked this plugin as compatible with Homebridge v2.",1,"fas","fa-check-circle","green-text","fa-xl"],["aria-label","The developer has not specifically marked this plugin as compatible with Homebridge v2, but it may still work.",1,"fas","fa-question-circle","orange-text","fa-xl"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click"],["type","button","data-bs-dismiss","modal",1,"btn","btn-primary",3,"click","disabled"]],template:function(n,r){n&1&&(f(0,"div",0)(1,"div",1)(2,"h5",2),C(3),w(4,"translate"),m(),f(5,"button",3),w(6,"translate"),j("click",function(){return r.closeModal("Dismiss")}),m()(),f(7,"div",4),E(8,C4,2,0,"div",5)(9,k4,10,3),m(),f(10,"div",6)(11,"div",7),E(12,M4,4,6,"button",8),m(),f(13,"div",9),E(14,O4,4,6,"button",8),m(),f(15,"div",10),E(16,D4,3,4,"button",11),m()()()),n&2&&(d(3),L(Ue(4,6,"status.readiness.title",Te(11,Ad))),d(2),G("aria-label",S(6,9,"form.button_close")),d(3),P(r.loading?8:9),d(4),P(r.isUpdating?12:-1),d(2),P(r.isUpdating?-1:14),d(2),P(r.isUpdating?16:-1))},dependencies:[ap,Ve],encapsulation:2})}return e})();var A4=(e,i)=>({iconStar:e,iconThumbsUp:i}),Ix=(e,i,t,n)=>({"fa-arrow-alt-circle-down":e,"fa-code-compare":i,"fa-arrow-alt-circle-up":t,"fa-trash":n}),F4=()=>["homebridge","homebridge-config-ui-x"],q4=e=>({pluginName:e});function j4(e,i){e&1&&(f(0,"p",13),C(1),w(2,"translate"),m()),e&2&&(d(),L(S(2,1,"plugins.settings.restart_required")))}function V4(e,i){e&1&&(f(0,"p",13),C(1),w(2,"translate"),m()),e&2&&(d(),L(S(2,1,"restart.child_bridges")))}function B4(e,i){if(e&1&&($(0,"p",12),w(1,"translate"),E(2,j4,3,3,"p",13),E(3,V4,3,3,"p",13)),e&2){let t=_(3);b("innerHTML",Ue(1,3,"plugins.manage.github_support",ln(6,A4,t.iconStar,t.iconThumbsUp)),he),d(2),P(t.childBridges.length===0?2:-1),d(),P(t.childBridges.length>0?3:-1)}}function R4(e,i){if(e&1&&(f(0,"div",9),$(1,"i",10),m(),f(2,"h5",11),C(3),m(),E(4,B4,4,9)),e&2){let t=_(2);d(3),ra("",t.pastTenseVerb,": ",t.pluginDisplayName," (",t.targetVersionPretty,")"),d(),P(t.isDisabled?-1:4)}}function L4(e,i){if(e&1&&(f(0,"div",6),E(1,R4,5,4),m()),e&2){let t=_();d(),P(t.justUpdatedPlugin?1:-1)}}function U4(e,i){if(e&1&&(f(0,"div",7)(1,"div",9),$(2,"i",14),m(),f(3,"ul",15)(4,"li"),C(5),w(6,"translate"),m(),f(7,"li"),C(8),w(9,"translate"),m()(),f(10,"pre",16),C(11),m()()),e&2){let t=_();d(2),b("ngClass",Nn(9,Ix,t.action==="Install",t.action==="Update"&&t.installedVersion,t.action==="Update"&&!t.installedVersion,t.action==="Uninstall")),d(3),L(S(6,5,"plugins.manage.online_updates")),d(3),L(S(9,7,"plugins.manage.manual_update_command")),d(3),sn(`hb-service stop
20
20
  npm install -g `,t.pluginName,"@",t.targetVersion,`
21
21
  hb-service start`)}}function z4(e,i){if(e&1&&(f(0,"span"),C(1),m()),e&2){let t=_(3);d(),B("v",t.installedVersion," \u2192 ")}}function H4(e,i){if(e&1&&(f(0,"h5",18),E(1,z4,2,1,"span"),C(2),m()),e&2){let t=_(2);d(),P(t.installedVersion?1:-1),d(),B(" ",t.targetVersionPretty," ")}}function W4(e,i){e&1&&(f(0,"div",26),$(1,"i",27),m())}function K4(e,i){if(e&1&&$(0,"markdown",28),e&2){let t=_(4);b("data",t.versionNotes)}}function G4(e,i){e&1&&(f(0,"div",29),C(1),w(2,"translate"),m()),e&2&&(d(),L(S(2,1,"plugins.manage.notes_none")))}function J4(e,i){if(e&1&&(f(0,"div",29),C(1),w(2,"translate"),$(3,"br"),C(4),w(5,"translate"),$(6,"br"),C(7),w(8,"translate"),$(9,"br"),m()),e&2){let t=_(6);d(),B(" ",Ue(2,3,"plugins.manage.notes_beta_1",Kt(10,q4,t.pluginDisplayName))),d(3),B(" ",S(5,6,"plugins.manage.notes_beta_2")),d(3),B(" ",S(8,8,"plugins.manage.notes_beta_3"))}}function X4(e,i){e&1&&(f(0,"div",29),C(1),w(2,"translate"),m()),e&2&&(d(),L(S(2,1,"plugins.manage.notes_latest")))}function Y4(e,i){if(e&1&&E(0,J4,10,12,"div",29)(1,X4,3,3,"div",29),e&2){let t=_(5);P(t.targetVersion.includes("beta")||t.targetVersion.includes("alpha")||t.targetVersion.includes("next")?0:1)}}function Q4(e,i){if(e&1&&E(0,G4,3,3,"div",29)(1,Y4,2,1),e&2){let t=_(4);P(t.versionNotesShow?0:1)}}function Z4(e,i){if(e&1&&E(0,K4,1,1,"markdown",28)(1,Q4,2,1),e&2){let t=_(3);P(t.versionNotes?0:1)}}function e5(e,i){if(e&1&&(f(0,"div",25),E(1,W4,2,0,"div",26)(2,Z4,2,1),m()),e&2){let t=_(2);d(),P(t.action==="Update"&&!t.versionNotesLoaded?1:2)}}function t5(e,i){e&1&&(f(0,"div",26),$(1,"i",27),m())}function i5(e,i){if(e&1&&$(0,"markdown",28),e&2){let t=_(4);b("data",t.fullChangelog)}}function n5(e,i){e&1&&($(0,"div",31),w(1,"translate")),e&2&&b("innerHTML",S(1,1,"plugins.manage.changelog_none"),he)}function r5(e,i){if(e&1&&E(0,i5,1,1,"markdown",28)(1,n5,2,3,"div",31),e&2){let t=_(3);P(t.fullChangelog?0:1)}}function o5(e,i){if(e&1&&(f(0,"div",30),E(1,t5,2,0,"div",26)(2,r5,2,1),m()),e&2){let t=_(2);d(),P(t.action==="Update"&&!t.fullChangelogLoaded?1:2)}}function a5(e,i){if(e&1){let t=H();f(0,"div",24)(1,"p",32)(2,"span",33),C(3),w(4,"translate"),m(),f(5,"a",34),j("click",function(){F(t);let r=_(2);return q(r.downloadBackupFile())}),$(6,"i",35),m()(),f(7,"p",36),C(8),w(9,"translate"),m()()}e&2&&(d(3),L(S(4,2,"plugins.manage.backup")),d(5),L(S(9,4,"plugins.manage.hb_restart")))}function s5(e,i){if(e&1){let t=H();f(0,"div",6)(1,"div",9),$(2,"i",17),m(),E(3,H4,3,2,"h5",18),f(4,"ul",19,0),Ne("activeIdChange",function(r){F(t);let o=_();return De(o.releaseNotesTab,r)||(o.releaseNotesTab=r),q(r)}),f(6,"li",20)(7,"button",21),C(8),w(9,"translate"),m(),le(10,e5,3,1,"ng-template",22),m(),f(11,"li",20)(12,"button",21),C(13),w(14,"translate"),m(),le(15,o5,3,1,"ng-template",22),m()(),$(16,"div",23),E(17,a5,10,6,"div",24),m()}if(e&2){let t=ip(5),n=_();d(2),b("ngClass",Nn(13,Ix,n.action==="Install"&&!n.installedVersion,n.action==="Install"&&n.installedVersion,n.action==="Update",n.action==="Uninstall")),d(),P(n.latestVersion?3:-1),d(),Oe("activeId",n.releaseNotesTab),d(2),b("ngbNavItem",1),d(2),L(S(9,9,"plugins.manage.notes")),d(3),b("ngbNavItem",2),d(2),L(S(14,11,"plugins.manage.changelog")),d(3),b("ngbNavOutlet",t),d(),P(Te(18,F4).includes(n.pluginName)?17:-1)}}function l5(e,i){if(e&1){let t=H();f(0,"button",43),w(1,"translate"),j("click",function(){F(t);let r=_(2);return q(r.dismissModal())}),C(2),w(3,"translate"),m()}e&2&&(G("aria-label",S(1,2,"form.button_close")),d(2),B(" ",S(3,4,"form.button_close")," "))}function u5(e,i){if(e&1){let t=H();f(0,"button",43),w(1,"translate"),j("click",function(){F(t);let r=_(2);return q(r.dismissModal())}),C(2),w(3,"translate"),m()}e&2&&(G("aria-label",S(1,2,"form.button_close")),d(2),B(" ",S(3,4,"form.button_close")," "))}function c5(e,i){if(e&1){let t=H();f(0,"button",44),j("click",function(){F(t);let r=_(2);return q(r.update())}),C(1),w(2,"translate"),m()}e&2&&(d(),L(S(2,1,"form.button_continue")))}function d5(e,i){if(e&1){let t=H();f(0,"button",44),j("click",function(){F(t);let r=_(2);return q(r.childBridges.length>0?r.onRestartChildBridgeClick():r.onRestartHomebridgeClick())}),C(1),w(2,"translate"),m()}e&2&&(d(),B(" ",S(2,1,"menu.tooltip_restart")," "))}function p5(e,i){if(e&1){let t=H();f(0,"button",45),j("click",function(){F(t);let r=_(2);return q(r.downloadLogFile())}),C(1),w(2,"translate"),m()}e&2&&(d(),L(S(2,1,"form.button_download")))}function f5(e,i){if(e&1&&(f(0,"div",8)(1,"div",37),E(2,l5,4,6,"button",38),m(),f(3,"div",39),E(4,u5,4,6,"button",38),m(),f(5,"div",40),E(6,c5,3,3,"button",41),E(7,d5,3,3,"button",41),E(8,p5,3,3,"button",42),m()()),e&2){let t=_();d(2),P(!t.justUpdatedPlugin&&t.onlineUpdateOk||t.justUpdatedPlugin&&(!t.isDisabled||t.actionFailed)?2:-1),d(2),P(t.justUpdatedPlugin&&t.isDisabled&&!t.actionFailed||!t.onlineUpdateOk?4:-1),d(2),P(t.onlineUpdateOk&&t.releaseNotesShow?6:-1),d(),P(t.justUpdatedPlugin&&!t.isDisabled?7:-1),d(),P(t.actionFailed?8:-1)}}var vr=(()=>{class e{$activeModal=k(je);$api=k(ve);$backup=k(Mp);$modal=k(et);$router=k(ai);$settings=k(Be);$toastr=k(we);$translate=k(xe);$ws=k(Bi);io;toastSuccess;term=new xx.Terminal;termTarget;fitAddon=new vx.FitAddon;webLinksAddon=new Cx.WebLinksAddon;errorLog="";pluginName;pluginDisplayName;targetVersion;latestVersion;installedVersion;isDisabled;action;targetVersionPretty="";actionComplete=!1;actionFailed=!1;justUpdatedPlugin=!1;updateToBeta=!1;childBridges=[];presentTenseVerb;pastTenseVerb;onlineUpdateOk;iconStar='<i class="fas fa-fw fa-star primary-text"></i>';iconThumbsUp='<i class="fas fa-fw fa-thumbs-up primary-text"></i>';versionNotes;versionNotesLoaded=!1;versionNotesShow=!1;fullChangelog;fullChangelogLoaded=!1;releaseNotesShow=!1;releaseNotesTab=1;constructor(){this.term.loadAddon(this.fitAddon),this.term.loadAddon(this.webLinksAddon)}ngOnInit(){switch(this.targetVersionPretty=this.targetVersion==="latest"?`v${this.latestVersion}`:/^\d/.test(this.targetVersion)?`v${this.targetVersion}`:this.targetVersion,this.io=this.$ws.connectToNamespace("plugins"),this.termTarget=document.getElementById("plugin-log-output"),this.term.open(this.termTarget),this.fitAddon.fit(),this.io.socket.on("stdout",t=>{this.term.write(t);let n=t.toString().replace(/\x1B\[(\d{1,3}(;\d{1,2})?)?[mGK]/g,"").trimEnd();n&&(this.errorLog+=`${n}\r
22
22
  `)}),this.toastSuccess=this.$translate.instant("toast.title_success"),this.onlineUpdateOk=!(["homebridge","homebridge-config-ui-x"].includes(this.pluginName)&&this.$settings.env.platform==="win32"),this.action){case"Install":this.install(),this.presentTenseVerb=this.$translate.instant("plugins.manage.install"),this.pastTenseVerb=this.$translate.instant("plugins.manage.installed");break;case"Uninstall":this.uninstall(),this.presentTenseVerb=this.$translate.instant("plugins.manage.uninstall"),this.pastTenseVerb=this.$translate.instant("plugins.manage.uninstalled");break;case"Update":switch(this.targetVersion){case"latest":this.updateToBeta=!1;break;case"alpha":case"beta":case"test":this.updateToBeta=!0;break}this.presentTenseVerb=this.$translate.instant("plugins.manage.update"),this.pastTenseVerb=this.$translate.instant("plugins.manage.updated"),this.getVersionNotes();break}}update(){if(this.releaseNotesShow=!1,this.versionNotes="",this.fullChangelog="",!!this.onlineUpdateOk){if(this.pluginName==="homebridge")return this.upgradeHomebridge();this.io.request("update",{name:this.pluginName,version:this.targetVersion,termCols:this.term.cols,termRows:this.term.rows}).subscribe({next:()=>K(this,null,function*(){if(this.pluginName==="homebridge-config-ui-x"){this.$api.put("/platform-tools/hb-service/set-full-service-restart-flag",{}).subscribe({next:()=>{window.location.href="/restart"},error:t=>{console.error(t),window.location.href="/restart"}});return}try{yield this.getChildBridges()}catch(t){console.error(t)}this.actionComplete=!0,this.justUpdatedPlugin=!0,this.$router.navigate(["/plugins"])}),error:t=>{this.actionFailed=!0,console.error(t),this.$toastr.error(t.message,this.$translate.instant("toast.title_error"))}})}}onRestartHomebridgeClick(){this.$router.navigate(["/restart"]),this.$activeModal.close()}onRestartChildBridgeClick(){return K(this,null,function*(){try{for(let n of this.childBridges)yield ce(this.$api.put(`/server/restart/${n.username}`,{}));let t=this.$modal.open(_x,{size:"xl",backdrop:"static"});t.componentInstance.plugin={name:this.pluginName,displayName:this.pluginDisplayName}}catch(t){console.error(t),this.$toastr.error(this.$translate.instant("plugins.manage.child_bridge_restart_failed"),this.$translate.instant("toast.title_error"))}finally{this.$activeModal.close()}})}downloadLogFile(){let t=new Blob([this.errorLog],{type:"text/plain;charset=utf-8"});(0,wx.saveAs)(t,`${this.pluginName}-error.log`)}downloadBackupFile(){return K(this,null,function*(){try{yield this.$backup.downloadBackup()}catch(t){console.error(t),this.$toastr.error(t.message,this.$translate.instant("toast.title_error"))}})}ngOnDestroy(){this.io.end()}dismissModal(){this.$activeModal.dismiss("Dismiss")}install(){if(this.onlineUpdateOk){if(this.pluginName==="homebridge")return this.upgradeHomebridge();this.io.request("install",{name:this.pluginName,version:this.targetVersion,termCols:this.term.cols,termRows:this.term.rows}).subscribe({next:()=>{this.$activeModal.close(),this.$toastr.success(`${this.pastTenseVerb} ${this.pluginName}`,this.toastSuccess),window.location.href=`/plugins?action=just-installed&plugin=${this.pluginName}`},error:t=>{this.actionFailed=!0,console.error(t),this.$router.navigate(["/plugins"]),this.$toastr.error(t.message,this.$translate.instant("toast.title_error"))}})}}uninstall(){this.io.request("uninstall",{name:this.pluginName,termCols:this.term.cols,termRows:this.term.rows}).subscribe({next:()=>{this.$activeModal.close(),this.$router.navigate(["/plugins"]),this.$modal.open(si,{size:"lg",backdrop:"static"})},error:t=>{this.actionFailed=!0,console.error(t),this.$toastr.error(t.message,this.$translate.instant("toast.title_error"))}})}upgradeHomebridge(){return K(this,null,function*(){let t="update";if(Number(this.installedVersion.split(".")[0])<2&&["2","alpha","beta"].includes(this.targetVersion.split(".")[0])){let n=this.$modal.open(bx,{size:"lg",backdrop:"static"});n.componentInstance.isUpdating=!0,t=yield n.result}t==="update"?this.io.request("homebridge-update",{version:this.targetVersion,termCols:this.term.cols,termRows:this.term.rows}).subscribe({next:()=>{this.$activeModal.close(),this.$api.put("/platform-tools/hb-service/set-full-service-restart-flag",{}).subscribe({next:()=>{this.$router.navigate(["/restart"])},error:n=>{console.error(n),this.$router.navigate(["/restart"])}})},error:n=>{this.actionFailed=!0,console.error(n),this.$toastr.error(n.message,this.$translate.instant("toast.title_error")),this.$activeModal.close()}}):this.$activeModal.close()})}getVersionNotes(){return K(this,null,function*(){this.releaseNotesShow=!0;try{let t=yield ce(this.$api.get(`/plugins/release/${encodeURIComponent(this.pluginName)}`));this.fullChangelog=t.changelog,t.latestVersion&&(this.latestVersion=t.latestVersion),this.targetVersion==="latest"||this.targetVersion===this.latestVersion?(this.versionNotesShow=!0,t.notes&&(this.versionNotes=t.notes)):(this.versionNotesShow=!1,this.versionNotesLoaded=!0)}catch(t){console.error("Error loading release notes:",t)}this.fullChangelogLoaded=!0,this.versionNotesLoaded=!0})}getChildBridges(){return K(this,null,function*(){(yield ce(this.$api.get("/status/homebridge/child-bridges"))).forEach(n=>{this.pluginName===n.plugin&&this.childBridges.push(n)})})}static \u0275fac=function(n){return new(n||e)};static \u0275cmp=Q({type:e,selectors:[["ng-component"]],inputs:{pluginName:"pluginName",pluginDisplayName:"pluginDisplayName",targetVersion:"targetVersion",latestVersion:"latestVersion",installedVersion:"installedVersion",isDisabled:"isDisabled",action:"action"},decls:11,vars:9,consts:[["nav","ngbNav"],[1,"modal-content"],[1,"modal-header"],[1,"modal-title"],["type","button","data-bs-dismiss","modal",1,"btn-close",3,"click"],["id","plugin-log-output",1,"modal-body",3,"hidden"],[1,"modal-body","plugin-modal-body"],[1,"modal-body"],[1,"modal-footer","justify-content-between"],[1,"mb-3","text-center"],[1,"far","fa-fw","fa-check-circle","primary-text",2,"font-size","75px"],[1,"text-center","mb-3"],[1,"mb-3","text-center","grey-text",3,"innerHTML"],[1,"text-center","mb-0"],[1,"fas","fa-fw","primary-text",2,"font-size","75px",3,"ngClass"],[1,"mb-3"],[1,"p-2","mb-0"],[1,"far","fa-fw","primary-text",2,"font-size","75px",3,"ngClass"],[1,"mb-4","text-center"],["ngbNav","",1,"nav-tabs","px-0",3,"activeIdChange","activeId"],[1,"w-50","m-0",3,"ngbNavItem"],["ngbNavLink","",1,"w-100","release-tab"],["ngbNavContent",""],[1,"mt-2",3,"ngbNavOutlet"],[1,"mt-4","mb-0"],[1,"alert","release-notes","p-3","pb-1","my-0"],[1,"w-100","text-center","primary-text","mt-3","mb-4"],[1,"fa","fa-fw","fa-cog","fa-spin",2,"font-size","75px"],[1,"plugin-md",3,"data"],[1,"w-100","text-center","grey-text","mt-3","mb-4"],[1,"alert","release-notes","p-3","pb-1","my-0",2,"border-top-left-radius","0","border-top-right-radius","0"],[1,"w-100","text-center","grey-text","mt-3","mb-4",3,"innerHTML"],[1,"w-100","text-center","mb-1","small"],[1,"grey-text"],["href","javascript:void(0)",3,"click"],[1,"fa","fa-fw","fa-download","mx-1"],[1,"w-100","text-center","mb-0","small","grey-text"],[1,"text-start"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant"],[1,"text-center"],[1,"text-end"],["type","button",1,"btn","btn-primary"],[1,"btn","btn-primary"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click"],["type","button",1,"btn","btn-primary",3,"click"],[1,"btn","btn-primary",3,"click"]],template:function(n,r){n&1&&(f(0,"div",1)(1,"div",2)(2,"h5",3),C(3),m(),f(4,"button",4),w(5,"translate"),j("click",function(){return r.dismissModal()}),m()(),$(6,"div",5),E(7,L4,2,1,"div",6),E(8,U4,12,14,"div",7),E(9,s5,18,19,"div",6),E(10,f5,9,5,"div",8),m()),n&2&&(d(3),L(r.pluginDisplayName),d(),G("aria-label",S(5,7,"form.button_close")),d(2),b("hidden",!r.onlineUpdateOk||r.actionComplete||r.releaseNotesShow),d(),P(r.actionComplete?7:-1),d(),P(r.onlineUpdateOk?-1:8),d(),P(r.releaseNotesShow&&!r.actionComplete&&r.onlineUpdateOk?9:-1),d(),P(!r.onlineUpdateOk||r.actionComplete||r.releaseNotesShow||r.actionFailed?10:-1))},dependencies:[ma,fa,ha,qt,vp,yp,_p,gp,bp,Ve],styles:[".plugin-modal-body[_ngcontent-%COMP%] .release-notes[_ngcontent-%COMP%]{box-shadow:none;max-height:39vh;overflow:auto;border:0;border-top-left-radius:0;border-top-right-radius:0}.plugin-modal-body[_ngcontent-%COMP%] .release-tab[_ngcontent-%COMP%]{font-size:1rem;color:#d3d3d3}.plugin-modal-body[_ngcontent-%COMP%] .tab-content[_ngcontent-%COMP%]{border-radius:0 0 20px 20px} .nav-tabs{--bs-nav-tabs-border-width: 0} .plugin-md{text-align:left;font-size:.85rem;word-wrap:break-word} .plugin-md img{max-width:100%} .plugin-md h1{font-size:1.3rem;font-weight:300} .plugin-md h2{font-size:1.2rem;font-weight:300} .plugin-md h3{font-size:1.1rem;font-weight:300} .plugin-md h4{font-size:1rem;font-weight:300} .plugin-md h5{font-size:.9rem;font-weight:300} .plugin-md pre{padding:16px;overflow:auto;font-size:85%;line-height:1.45;background-color:#f6f8fa;border-radius:3px}"]})}return e})();var Sx=Me(pa(),1);var m5=()=>["homebridge","homebridge-config-ui-x"];function h5(e,i){e&1&&(f(0,"div",5),$(1,"i",12),m())}function g5(e,i){if(e&1&&($(0,"i",20),f(1,"h6",21),C(2),w(3,"translate"),m(),f(4,"p",21),C(5),w(6,"translate"),f(7,"span",22),C(8),m()()),e&2){let t=_(2);d(2),L(S(3,3,"plugins.manage.select_version")),d(3),B(" ",S(6,5,"plugins.status_installed"),": "),d(3),B("v",t.plugin.installedVersion)}}function _5(e,i){e&1&&($(0,"i",23),f(1,"h6",21),C(2),w(3,"translate"),m()),e&2&&(d(2),L(S(3,1,"plugins.manage.select_version")))}function y5(e,i){e&1&&$(0,"i",26)}function b5(e,i){e&1&&$(0,"i",27)}function v5(e,i){if(e&1){let t=H();f(0,"li",14)(1,"span",8),C(2),$(3,"br"),f(4,"small",24),C(5),m()(),f(6,"button",25),j("click",function(){let r=F(t).$implicit,o=_(2);return q(o.doInstall(r.version))}),E(7,y5,1,0,"i",26)(8,b5,1,0,"i",27),m()()}if(e&2){let t=i.$implicit,n=_(2);d(2),B(" ",t.tag," "),d(3),B("v",t.version),d(2),P(n.plugin.installedVersion===t.version?7:8)}}function C5(e,i){e&1&&C(0," \u2713 ")}function x5(e,i){if(e&1&&(f(0,"option",17),C(1),E(2,C5,1,0),m()),e&2){let t=i.$implicit,n=_(2);b("value",t.version)("selected",n.versionSelect==t.version),d(),B(" v",t.version," "),d(),P(t.version==n.plugin.installedVersion?2:-1)}}function w5(e,i){e&1&&$(0,"i",26)}function I5(e,i){e&1&&$(0,"i",27)}function S5(e,i){if(e&1){let t=H();f(0,"button",25),j("click",function(){F(t);let r=_(2);return q(r.doInstall(r.versionSelect))}),E(1,w5,1,0,"i",26)(2,I5,1,0,"i",27),m()}if(e&2){let t=_(2);d(),P(t.plugin.installedVersion===t.versionSelect?1:2)}}function $5(e,i){if(e&1&&(f(0,"ul",19)(1,"li",28)(2,"div",8),C(3),w(4,"translate"),$(5,"br"),f(6,"span",29),C(7),w(8,"translate"),m()(),f(9,"div",30),$(10,"input",31),w(11,"translate"),$(12,"label",32),m()()()),e&2){let t=_(2);d(3),B(" ",S(4,4,"plugins.manage.hide_updates")),d(4),L(S(8,6,"plugins.manage.hide_updates_desc")),d(3),b("formControl",t.hideUpdatesFormControl),G("aria-label",S(11,8,"plugins.manage.hide_updates"))}}function E5(e,i){if(e&1){let t=H();f(0,"div",6),E(1,g5,9,7)(2,_5,4,3),f(3,"ul",13),pt(4,v5,9,3,"li",14,dt),f(6,"li",14)(7,"div",15),C(8),w(9,"translate"),$(10,"br"),f(11,"select",16),Ne("ngModelChange",function(r){F(t);let o=_();return De(o.versionSelect,r)||(o.versionSelect=r),q(r)}),pt(12,x5,3,4,"option",17,dt),m()(),E(14,S5,3,1,"button",18),m()(),E(15,$5,13,10,"ul",19),m()}if(e&2){let t=_();d(),P(t.plugin.installedVersion?1:2),d(3),ft(t.versionsWithTags),d(4),B(" ",S(9,5,"plugins.manage.all_versions")," "),d(3),Oe("ngModel",t.versionSelect),d(),ft(t.versions),d(2),P(t.versionSelect?14:-1),d(),P(t.plugin.installedVersion&&!Te(7,m5).includes(t.plugin.name)?15:-1)}}var $x=(()=>{class e{$activeModal=k(je);$api=k(ve);$settings=k(Be);$toastr=k(we);$translate=k(xe);plugin;isUpdateHidden=!1;hideUpdatesFormControl=new pp(!1);loading=!0;versions=[];versionsWithTags=[];versionSelect;ngOnInit(){this.versionSelect=this.plugin.installedVersion||this.plugin.latestVersion,this.lookupVersions(),this.isUpdateHidden=this.$settings.env.plugins.hideUpdatesFor&&this.$settings.env.plugins.hideUpdatesFor.includes(this.plugin.name),this.hideUpdatesFormControl.patchValue(this.isUpdateHidden),this.hideUpdatesFormControl.valueChanges.pipe(kn(750)).subscribe(t=>this.toggleHideUpdates(t))}doInstall(t){this.$activeModal.close({name:this.plugin.name,version:t,engines:this.versions.find(n=>n.version===t).engines,action:this.plugin.installedVersion?"alternate":"install"})}toggleHideUpdates(t){return K(this,null,function*(){let n=this.$settings.env.plugins?.hideUpdatesFor||[];t?n.includes(this.plugin.name)||(n=[...n,this.plugin.name].sort((r,o)=>r.localeCompare(o))):n=n.filter(r=>r!==this.plugin.name);try{yield ce(this.$api.put("/config-editor/ui/plugins/hide-updates-for",{body:n})),this.$settings.setEnvItem("plugins.hideUpdatesFor",n),window.location.href=`/plugins?action=open-manage-version&plugin=${this.plugin.name}`}catch(r){this.hideUpdatesFormControl.patchValue(this.isUpdateHidden,{emitEvent:!1}),console.error(r),this.$toastr.error(r.message,this.$translate.instant("toast.title_error"))}})}dismissModal(){this.$activeModal.dismiss("Dismiss")}lookupVersions(){this.$api.get(`/plugins/lookup/${encodeURIComponent(this.plugin.name)}/versions`).subscribe({next:t=>{for(let[n,r]of Object.entries(t.versions))this.versions.push({version:n,engines:r.engines||null}),Object.keys(t.tags).filter(o=>t.tags[o]===n).forEach(o=>{this.versionsWithTags.push({version:n,tag:o})});this.plugin.installedVersion&&!this.versions.find(n=>n.version===this.plugin.installedVersion)&&this.versions.push({version:this.plugin.installedVersion,engines:this.plugin.engines||null}),this.versions.sort((n,r)=>(0,Sx.rcompare)(n.version,r.version)),this.versionsWithTags.sort((n,r)=>{let o=["latest","next","beta","alpha"],a=o.includes(n.tag)?o.indexOf(n.tag):999,s=o.includes(r.tag)?o.indexOf(r.tag):999;return a-s}),!this.versions.find(n=>n.version===this.versionSelect)&&t.tags.latest&&(this.versionSelect=t.tags.latest),this.loading=!1},error:t=>{console.error(t),this.$toastr.error(t.error?.message||t.message,this.$translate.instant("toast.title_error")),this.$activeModal.dismiss()}})}static \u0275fac=function(n){return new(n||e)};static \u0275cmp=Q({type:e,selectors:[["ng-component"]],inputs:{plugin:"plugin"},decls:17,vars:11,consts:[[1,"modal-content"],[1,"modal-header"],[1,"modal-title"],["type","button","data-bs-dismiss","modal",1,"btn-close",3,"click"],[1,"modal-body","d-flex","flex-row","flex-grow-1","w-100"],[1,"w-100","text-center","primary-text"],[1,"w-100","text-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"],[1,"fa","fa-fw","fa-cog","fa-spin",2,"font-size","75px"],[1,"list-group","list-group-box","mb-0"],[1,"list-group-item","d-flex","justify-content-between","align-items-center"],[1,"text-start",2,"min-width","50%"],[1,"custom-select","w-100",2,"font-size","0.875rem",3,"ngModelChange","ngModel"],[3,"value","selected"],[1,"btn","btn-primary","m-0","ms-3"],[1,"list-group","list-group-box","mt-3","mb-0"],[1,"fas","fa-fw","fa-code-compare","primary-text","mb-3",2,"font-size","75px"],[1,"mb-3"],[1,"font-monospace"],[1,"far","fa-fw","fa-arrow-alt-circle-down","primary-text","mb-3",2,"font-size","75px"],[1,"grey-text","font-monospace"],[1,"btn","btn-primary","m-0","ms-3",3,"click"],[1,"fas","fa-fw","fa-rotate-right"],[1,"fas","fa-fw","fa-arrow-alt-circle-down"],[1,"list-group-item","d-flex","justify-content-between","align-items-center","flex-row","pb-2"],[1,"grey-text","small"],[1,"text-end","grey-text","d-flex","align-items-center"],["type","checkbox","id","hidePluginUpdates",1,"rendux-input",3,"formControl"],["for","hidePluginUpdates",1,"rendux-label","ms-3"]],template:function(n,r){n&1&&(f(0,"div",0)(1,"div",1)(2,"h5",2),C(3),m(),f(4,"button",3),w(5,"translate"),j("click",function(){return r.dismissModal()}),m()(),f(6,"div",4),E(7,h5,2,0,"div",5)(8,E5,16,8,"div",6),m(),f(9,"div",7),$(10,"div",8),f(11,"div",9)(12,"button",10),w(13,"translate"),j("click",function(){return r.dismissModal()}),C(14),w(15,"translate"),m()(),$(16,"div",11),m()()),n&2&&(d(3),L(r.plugin.displayName||r.plugin.name),d(),G("aria-label",S(5,5,"form.button_close")),d(3),P(r.loading?7:8),d(5),G("aria-label",S(13,7,"form.button_close")),d(2),B(" ",S(15,9,"form.button_close")," "))},dependencies:[Gt,cn,dn,Fi,Fn,bt,qi,Sr,ji,Ve],encapsulation:2})}return e})();var Ex=Me(Xx(),1);function P5(e,i){e&1&&(f(0,"div",5),$(1,"i",14),m())}function T5(e,i){e&1&&(f(0,"div",6),C(1),w(2,"translate"),w(3,"translate"),m()),e&2&&(d(),sn(" ",S(2,2,"plugins.settings.message_manual_config_required")," ",S(3,4,"plugins.settings.message_consult_documentation")," "))}function k5(e,i){if(e&1){let t=H();f(0,"button",25),w(1,"translate"),j("click",function(){F(t);let r=_(2).$index,o=_(2);return q(o.removeBlock(r))}),$(2,"i",26),m()}e&2&&b("ngbTooltip",S(1,2,"form.button_delete"))("openDelay",150)}function M5(e,i){if(e&1&&E(0,k5,3,4,"button",24),e&2){let t=_(3);P(!(t.schema!=null&&t.schema.singular)||t.pluginConfig.length>1?0:-1)}}function O5(e,i){if(e&1){let t=H();f(0,"div",15)(1,"div",16)(2,"div",17)(3,"h5",18),C(4),m(),f(5,"div"),E(6,M5,1,1),f(7,"button",19),w(8,"translate"),j("click",function(){let r=F(t).$index,o=_(2);return q(o.editBlock(r))}),$(9,"i",20),m()()()(),f(10,"div",21)(11,"div",22)(12,"ngx-monaco-editor",23),Ne("ngModelChange",function(r){F(t);let o=_(2);return De(o.currentBlock,r)||(o.currentBlock=r),q(r)}),j("onInit",function(r){F(t);let o=_(2);return q(o.onEditorInit(r))}),m()()()()}if(e&2){let t=i.$implicit,n=i.$index,r=_(2);b("ngbAccordionItem","configBlock."+n)("collapsed",r.show!=="configBlock."+n)("id","configBlock."+n),d(4),L(t.name||r.pluginAlias),d(2),P(r.show==="configBlock."+n?6:-1),d(),b("ngbTooltip",S(8,9,"form.button_edit"))("openDelay",150),d(5),b("options",r.editorOptions),Oe("ngModel",r.currentBlock)}}function D5(e,i){if(e&1&&(f(0,"div",7),pt(1,O5,13,11,"div",15,dt),m()),e&2){let t=_();b("closeOthers",!0),d(),ft(t.pluginConfig)}}function N5(e,i){if(e&1){let t=H();f(0,"button",30),j("click",function(){F(t);let r=_(2);return q(r.addBlock())}),$(1,"i",31),m()}}function A5(e,i){e&1&&(C(0),w(1,"translate")),e&2&&B(" ",S(1,1,"form.button_save")," ")}function F5(e,i){e&1&&$(0,"i",29)}function q5(e,i){if(e&1){let t=H();E(0,N5,2,0,"button",27),f(1,"button",28),j("click",function(){F(t);let r=_();return q(r.save())}),E(2,A5,2,3),E(3,F5,1,0,"i",29),m()}if(e&2){let t=_();P(t.schema!=null&&t.schema.singular?-1:0),d(),b("disabled",t.saveInProgress),d(),P(t.saveInProgress?-1:2),d(),P(t.saveInProgress?3:-1)}}function j5(e,i){if(e&1){let t=H();f(0,"button",32),j("click",function(){F(t);let r=_();return q(r.openFullConfigEditor())}),C(1),w(2,"translate"),m()}e&2&&(d(),B(" ",S(2,1,"plugins.settings.label_open_config_editor")," "))}var Fd=(()=>{class e{$activeModal=k(je);$api=k(ve);$md=k($p);$modal=k(et);$plugin=k(nn);$router=k(ai);$settings=k(Be);$toastr=k(we);$translate=k(xe);plugin;schema;pluginAlias;pluginType;loading=!0;canConfigure=!1;show="";pluginConfig;currentBlock;currentBlockIndex=null;saveInProgress=!1;childBridges=[];isFirstSave=!1;monacoEditor;editorOptions;get arrayKey(){return this.pluginType==="accessory"?"accessories":"platforms"}ngOnInit(){this.editorOptions={language:"json",theme:this.$settings.actualLightingMode==="dark"?"vs-dark":"vs-light",automaticLayout:!0},this.$md.detect.mobile()?(this.loading=!1,this.canConfigure=!1):this.loadPluginAlias()}onEditorInit(t){return K(this,null,function*(){window.editor=t,this.monacoEditor=t,yield this.monacoEditor.getModel().setValue(this.currentBlock),yield this.monacoEditor.getAction("editor.action.formatDocument").run()})}addBlock(){if(!this.saveCurrentBlock()){this.$toastr.error(this.$translate.instant("plugins.config.please_fix"),this.$translate.instant("toast.title_error"));return}this.pluginConfig.push({[this.pluginType]:this.pluginAlias,name:this.pluginAlias}),this.editBlock(this.pluginConfig.length-1)}editBlock(t){this.saveCurrentBlock()&&(this.show=`configBlock.${t}`,this.currentBlockIndex=t,this.currentBlock=JSON.stringify(this.pluginConfig[this.currentBlockIndex],null,4))}removeBlock(t){let n=this.pluginConfig[t],r=this.pluginConfig.findIndex(o=>o===n);r>-1&&this.pluginConfig.splice(r,1),this.currentBlockIndex=null,this.currentBlock=void 0,this.show=""}save(){return K(this,null,function*(){if(this.saveInProgress=!0,!this.saveCurrentBlock()){this.saveInProgress=!1;return}try{let t=yield ce(this.$api.post(`/config-editor/plugin/${encodeURIComponent(this.plugin.name)}`,this.pluginConfig));if(this.$activeModal.close(),this.isFirstSave&&this.$settings.env.recommendChildBridges&&t[0]?.platform){this.$activeModal.close(),this.$plugin.bridgeSettings(this.plugin,!0);return}if(!["homebridge","homebridge-config-ui-x"].includes(this.plugin.name)&&(yield this.getChildBridges(),this.childBridges.length>0)){this.$activeModal.close();let n=this.$modal.open(Vn,{size:"lg",backdrop:"static"});n.componentInstance.bridges=this.childBridges.map(r=>({name:r.name,username:r.username}));return}this.$activeModal.close(),this.$modal.open(si,{size:"lg",backdrop:"static"})}catch(t){console.error(t),this.$toastr.error(this.$translate.instant("config.failed_to_save_config"),this.$translate.instant("toast.title_error")),this.saveInProgress=!1}})}openFullConfigEditor(){this.$router.navigate(["/config"]),this.$activeModal.close()}closeModal(){this.$activeModal.close()}loadPluginAlias(){this.$api.get(`/plugins/alias/${encodeURIComponent(this.plugin.name)}`).subscribe({next:t=>{t.pluginAlias&&t.pluginType?(this.pluginAlias=t.pluginAlias,this.pluginType=t.pluginType,this.loadHomebridgeConfig()):this.loading=!1},error:()=>{this.loading=!1}})}loadHomebridgeConfig(){this.$api.get(`/config-editor/plugin/${encodeURIComponent(this.plugin.name)}`).subscribe(t=>{this.pluginConfig=t,this.canConfigure=!0,this.loading=!1,this.pluginConfig.length?this.editBlock(0):(this.isFirstSave=!0,this.addBlock())})}saveCurrentBlock(){if(this.currentBlockIndex!==null&&this.monacoEditor){let t=this.monacoEditor.getModel().getValue().trim(),n;t.charAt(0)==='"'&&t.charAt(t.length-1)==="]"&&(t=`{${t}}`);try{n=Ex.default.parse(t)}catch(o){return console.error(o),this.$toastr.error(this.$translate.instant("config.config_invalid_json"),this.$translate.instant("toast.title_error")),!1}if(Array.isArray(n)||typeof n!="object")return this.$toastr.error(this.$translate.instant("plugins.config.must_be_object"),this.$translate.instant("toast.title_error")),!1;if(!n[this.pluginType]&&Array.isArray(n[this.arrayKey])&&n[this.arrayKey].length&&Object.keys(n).length===1&&(n=n[this.arrayKey][0]),this.pluginType==="accessory"&&(!n.name||typeof n.name!="string"))return this.$toastr.error(this.$translate.instant("plugins.config.name_property"),this.$translate.instant("toast.title_error")),n.name="",this.monacoEditor.getModel().setValue(JSON.stringify(n,null,4)),!1;let r=this.pluginConfig[this.currentBlockIndex];Object.keys(r).forEach(o=>delete r[o]),Object.assign(r,n),r[this.pluginType]=this.pluginAlias}return!0}getChildBridges(){return K(this,null,function*(){try{(yield ce(this.$api.get("/status/homebridge/child-bridges"))).forEach(n=>{this.plugin.name===n.plugin&&this.childBridges.push(n)})}catch(t){console.error(t),this.$toastr.error(t.message,this.$translate.instant("toast.title_error")),this.childBridges=[]}})}static \u0275fac=function(n){return new(n||e)};static \u0275cmp=Q({type:e,selectors:[["ng-component"]],inputs:{plugin:"plugin",schema:"schema"},decls:19,vars:14,consts:[[1,"modal-content"],[1,"modal-header"],[1,"modal-title"],["type","button","data-bs-dismiss","modal",1,"btn-close",3,"click","disabled"],[1,"modal-body","pb-0"],[1,"text-center","primary-text"],[1,"alert","alert-warning","mb-0"],["ngbAccordion","",3,"closeOthers"],[1,"modal-footer","justify-content-between"],[1,"text-start"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click","disabled"],[1,"text-center"],[1,"text-end"],[1,"btn","btn-primary"],[1,"fa","fa-fw","fa-cog","fa-spin",2,"font-size","75px"],[1,"card",3,"ngbAccordionItem","collapsed","id"],["ngbAccordionHeader","",1,"card-header"],[1,"d-flex","align-items-center","justify-content-between"],[1,"m-0"],["ngbAccordionToggle","","container","modal","triggers","hover",1,"btn","btn-primary","m-0","ms-2",3,"click","ngbTooltip","openDelay"],[1,"fa","fa-fw","fa-edit"],["ngbAccordionCollapse",""],["ngbAccordionBody","",1,"card-body","p-0",2,"height","400px"],[1,"flex-grow-1","h-100","w-100","mb-0","pb-0",3,"ngModelChange","onInit","options","ngModel"],["container","modal","triggers","hover",1,"btn","btn-danger","m-0","ms-3",3,"ngbTooltip","openDelay"],["container","modal","triggers","hover",1,"btn","btn-danger","m-0","ms-3",3,"click","ngbTooltip","openDelay"],[1,"fa","fa-fw","fa-trash"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant","me-2"],["type","button","data-bs-dismiss","modal",1,"btn","btn-primary",3,"click","disabled"],[1,"fas","fa-fw","fa-spinner","fa-pulse"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant","me-2",3,"click"],[1,"fa","fa-fw","fa-plus"],[1,"btn","btn-primary",3,"click"]],template:function(n,r){n&1&&(f(0,"div",0)(1,"div",1)(2,"h5",2),C(3),m(),f(4,"button",3),w(5,"translate"),j("click",function(){return r.closeModal()}),m()(),f(6,"div",4),E(7,P5,2,0,"div",5),E(8,T5,4,6,"div",6),E(9,D5,3,1,"div",7),m(),f(10,"div",8)(11,"div",9)(12,"button",10),j("click",function(){return r.closeModal()}),C(13),w(14,"translate"),m()(),$(15,"div",11),f(16,"div",12),E(17,q5,4,4),E(18,j5,3,3,"button",13),m()()()),n&2&&(d(3),L(r.plugin.displayName||r.plugin.name),d(),b("disabled",r.saveInProgress),G("aria-label",S(5,10,"form.button_close")),d(3),P(r.loading?7:-1),d(),P(!r.loading&&!r.canConfigure?8:-1),d(),P(!r.loading&&r.canConfigure?9:-1),d(3),b("disabled",r.saveInProgress),d(),B(" ",S(14,12,"form.button_close")," "),d(4),P(r.canConfigure?17:-1),d(),P(r.canConfigure?-1:18))},dependencies:[da,ca,ua,jn,sa,aa,Cp,Gt,bt,qi,la,Ve],styles:[".no-padding-card-body .card-body{padding:0!important} body.dark-mode .no-padding-card-body .card-body{background-color:#1e1e1e}.manage-plugin-config-external-icons[_ngcontent-%COMP%]{font-size:1.5rem;font-weight:700;line-height:1;color:#000;opacity:.5;background-color:transparent;border:0}"]})}return e})();var Px=e=>({link:e}),V5=(e,i)=>({"green-text":e,"grey-text":i});function B5(e,i){if(e&1){let t=H();f(0,"button",13),w(1,"translate"),j("click",function(){F(t);let r=_();return q(r.closeModal())}),m()}if(e&2){let t=_();b("disabled",t.saveInProgress),G("aria-label",S(1,2,"form.button_close"))}}function R5(e,i){e&1&&(f(0,"div",5),$(1,"i",14),m())}function L5(e,i){e&1&&(f(0,"li"),C(1),w(2,"translate"),m()),e&2&&(d(),L(S(2,1,"child_bridge.bridges_paired_2")))}function U5(e,i){e&1&&(f(0,"li"),C(1),w(2,"translate"),m()),e&2&&(d(),B("",S(2,1,"child_bridge.select_type"),":"))}function z5(e,i){if(e&1&&(f(0,"li"),C(1),w(2,"translate"),m(),E(3,L5,3,3,"li"),E(4,U5,3,3,"li")),e&2){let t=_(2);d(),L(S(2,3,"child_bridge.bridges_paired")),d(2),P(t.configBlocks.length===1&&!t.deviceInfo[t.configBlocks[0]._bridge==null?null:t.configBlocks[0]._bridge.username]&&t.originalBridges.length===0?3:-1),d(),P(t.canConfigure?4:-1)}}function H5(e,i){if(e&1&&(f(0,"option",29),C(1),m()),e&2){let t=i.$implicit,n=i.$index;b("value",n),d(),L(t.name||t.platform||t.accessory)}}function W5(e,i){if(e&1){let t=H();f(0,"li",25),C(1),w(2,"translate"),m(),f(3,"li",23)(4,"label",26),C(5),w(6,"translate"),m(),f(7,"div",27)(8,"select",28),Ne("ngModelChange",function(r){F(t);let o=_(3);return De(o.selectedBlock,r)||(o.selectedBlock=r),q(r)}),j("change",function(r){F(t);let o=_(3);return q(o.onBlockChange(r.target.value))}),pt(9,H5,2,2,"option",29,dt),m()()()}if(e&2){let t=_(3);d(),L(S(2,3,"form.label.changes_kept")),d(4),B(" ",S(6,5,t.isPlatform?"child_bridge.config.platform":"child_bridge.config.accessory")," "),d(3),Oe("ngModel",t.selectedBlock),d(),ft(t.configBlocks)}}function K5(e,i){if(e&1&&(f(0,"li",23)(1,"label",30),C(2),w(3,"translate"),m(),f(4,"div",31),C(5),m()()),e&2){let t=_(3);d(2),B(" ",S(3,2,t.isPlatform?"child_bridge.config.platform":"child_bridge.config.accessory")," "),d(3),B(" ",t.configBlocks[t.selectedBlock].name||t.configBlocks[t.selectedBlock].platform||t.configBlocks[t.selectedBlock].accessory," ")}}function G5(e,i){e&1&&(f(0,"li",23)(1,"label",30),C(2),w(3,"translate"),m(),f(4,"div",32),C(5),w(6,"translate"),m()()),e&2&&(d(2),L(S(3,2,"child_bridge.config.use")),d(3),B(" ",S(6,4,"child_bridge.config.prevent")," "))}function J5(e,i){if(e&1&&(f(0,"option",29),C(1),m()),e&2){let t=i.$implicit;b("value",t.username),d(),sn("",t.name," (",t.username,")")}}function X5(e,i){if(e&1){let t=H();f(0,"li",23)(1,"label",37),C(2),w(3,"translate"),m(),f(4,"div",27)(5,"select",38),j("change",function(r){F(t);let o=_(4);return q(o.onLinkBridgeChange(r.target.value))}),f(6,"option",29),C(7),w(8,"translate"),m(),pt(9,J5,2,3,"option",29,dt),m()()()}if(e&2){let t=_(4);d(2),L(S(3,2,"child_bridge.config.or_link")),d(5),L(S(8,4,"child_bridge.config.select_existing")),d(2),ft(t.bridgesAvailableForLink)}}function Y5(e,i){if(e&1){let t=H();f(0,"li",33)(1,"span",7),C(2),w(3,"translate"),m(),f(4,"div",34)(5,"input",35),j("change",function(){F(t);let r=_(3);return q(r.toggleExternalBridge(r.configBlocks[r.selectedBlock],r.enabledBlocks[r.selectedBlock],r.selectedBlock))}),Ne("ngModelChange",function(r){F(t);let o=_(3);return De(o.enabledBlocks[o.selectedBlock],r)||(o.enabledBlocks[o.selectedBlock]=r),q(r)}),m(),$(6,"label",36),m()(),E(7,X5,11,6,"li",23)}if(e&2){let t=_(3);d(2),L(S(3,5,"child_bridge.config.use")),d(3),b("id","toggleExternalBridgeInput_"+t.selectedBlock),Oe("ngModel",t.enabledBlocks[t.selectedBlock]),d(),b("for","toggleExternalBridgeInput_"+t.selectedBlock),d(),P(!(t.configBlocks[t.selectedBlock]._bridge!=null&&t.configBlocks[t.selectedBlock]._bridge.username)&&t.bridgesAvailableForLink.length?7:-1)}}function Q5(e,i){if(e&1&&(f(0,"li",23)(1,"label",30),C(2),w(3,"translate"),m(),f(4,"div",31),C(5),m()(),f(6,"li",23)(7,"label",30),C(8),w(9,"translate"),m(),f(10,"div",31),C(11),m()(),f(12,"li",23)(13,"label",30),C(14),w(15,"translate"),m(),f(16,"div",31),C(17),m()()),e&2){let t=_(3);d(2),L(S(3,6,"accessories.bridge_link_username")),d(3),B(" ",t.currentlySelectedLink.username," "),d(3),L(S(9,8,"accessories.bridge_link_port")),d(3),B(" ",t.currentlySelectedLink.port," "),d(3),L(S(15,10,"accessories.bridge_link_name")),d(3),B(" ",t.currentlySelectedLink.name," ")}}function Z5(e,i){e&1&&(f(0,"span"),C(1),w(2,"translate"),m()),e&2&&(d(),B(" \xB7 ",S(2,1,"status.code_scan")," "))}function eL(e,i){if(e&1){let t=H();f(0,"li",33)(1,"span",7),C(2),w(3,"translate"),f(4,"code"),C(5,"-D"),m()(),f(6,"div",34)(7,"input",51),w(8,"translate"),Ne("ngModelChange",function(r){F(t);let o=_(5);return De(o.configBlocks[o.selectedBlock]._bridge.debugModeEnabled,r)||(o.configBlocks[o.selectedBlock]._bridge.debugModeEnabled=r),q(r)}),m(),$(9,"label",36),m()()}if(e&2){let t=_(5);d(2),B("",S(3,5,"child_bridge.config.debug")," "),d(5),b("id","homebridgeDebugMode_"+t.selectedBlock),Oe("ngModel",t.configBlocks[t.selectedBlock]._bridge.debugModeEnabled),G("aria-label",S(8,7,"settings.startup.debug")),d(2),b("for","homebridgeDebugMode_"+t.selectedBlock)}}function tL(e,i){if(e&1){let t=H();f(0,"li",39)(1,"div",40),$(2,"app-qrcode",41),f(3,"p",42),C(4),m(),f(5,"p",43),$(6,"i",44),C(7),w(8,"translate"),E(9,Z5,3,3,"span"),m()()(),f(10,"li",23)(11,"label",30),C(12),w(13,"translate"),m(),f(14,"div",31),C(15),m()(),f(16,"li",23)(17,"label",30),C(18),w(19,"translate"),m(),f(20,"div",31),C(21),m()(),f(22,"li",23)(23,"label",30),C(24),w(25,"translate"),m(),f(26,"div",27)(27,"input",45),Ne("ngModelChange",function(r){F(t);let o=_(4);return De(o.configBlocks[o.selectedBlock]._bridge.name,r)||(o.configBlocks[o.selectedBlock]._bridge.name=r),q(r)}),m()()(),f(28,"li",23)(29,"label",30),C(30),w(31,"translate"),m(),f(32,"div",27)(33,"input",45),Ne("ngModelChange",function(r){F(t);let o=_(4);return De(o.configBlocks[o.selectedBlock]._bridge.manufacturer,r)||(o.configBlocks[o.selectedBlock]._bridge.manufacturer=r),q(r)}),m()()(),f(34,"li",23)(35,"label",30),C(36),w(37,"translate"),m(),f(38,"div",27)(39,"input",45),Ne("ngModelChange",function(r){F(t);let o=_(4);return De(o.configBlocks[o.selectedBlock]._bridge.model,r)||(o.configBlocks[o.selectedBlock]._bridge.model=r),q(r)}),m()()(),f(40,"li",23)(41,"label",30),C(42),w(43,"translate"),m(),f(44,"div",27)(45,"input",45),Ne("ngModelChange",function(r){F(t);let o=_(4);return De(o.configBlocks[o.selectedBlock]._bridge.firmwareRevision,r)||(o.configBlocks[o.selectedBlock]._bridge.firmwareRevision=r),q(r)}),m()()(),E(46,eL,10,9,"li",33),f(47,"li",23)(48,"label",30)(49,"span",46),C(50,"DEBUG"),m(),$(51,"br")(52,"small",47),w(53,"translate"),m(),f(54,"div",27)(55,"input",48),Ne("ngModelChange",function(r){F(t);let o=_(4);return De(o.configBlocks[o.selectedBlock]._bridge.env.DEBUG,r)||(o.configBlocks[o.selectedBlock]._bridge.env.DEBUG=r),q(r)}),m()()(),f(56,"li",23)(57,"label",30)(58,"span",46),C(59,"NODE_OPTIONS"),m(),$(60,"br"),f(61,"small",49),C(62),w(63,"translate"),m()(),f(64,"div",27)(65,"input",50),Ne("ngModelChange",function(r){F(t);let o=_(4);return De(o.configBlocks[o.selectedBlock]._bridge.env.NODE_OPTIONS,r)||(o.configBlocks[o.selectedBlock]._bridge.env.NODE_OPTIONS=r),q(r)}),m()()()}if(e&2){let t=_(4);d(2),b("data",t.deviceInfo[t.configBlocks[t.selectedBlock]._bridge==null?null:t.configBlocks[t.selectedBlock]._bridge.username]._setupCode),d(2),L(t.deviceInfo[t.configBlocks[t.selectedBlock]._bridge==null?null:t.configBlocks[t.selectedBlock]._bridge.username].pincode),d(2),b("ngClass",ln(41,V5,t.deviceInfo[t.configBlocks[t.selectedBlock]._bridge==null?null:t.configBlocks[t.selectedBlock]._bridge.username]._isPaired,!t.deviceInfo[t.configBlocks[t.selectedBlock]._bridge==null?null:t.configBlocks[t.selectedBlock]._bridge.username]._isPaired)),d(),B(" ",S(8,22,t.deviceInfo[t.configBlocks[t.selectedBlock]._bridge==null?null:t.configBlocks[t.selectedBlock]._bridge.username]._isPaired?"status.widget.qr_paired":"status.widget.qr_unpaired")," "),d(2),P(t.deviceInfo[t.configBlocks[t.selectedBlock]._bridge==null?null:t.configBlocks[t.selectedBlock]._bridge.username]._isPaired?-1:9),d(3),L(S(13,24,"accessories.bridge_username")),d(3),B(" ",t.configBlocks[t.selectedBlock]._bridge.username," "),d(3),L(S(19,26,"accessories.bridge_port")),d(3),B(" ",t.configBlocks[t.selectedBlock]._bridge.port," "),d(3),L(S(25,28,"child_bridge.config.name")),d(3),Oe("ngModel",t.configBlocks[t.selectedBlock]._bridge.name),d(3),L(S(31,30,"child_bridge.config.manufacturer")),d(3),Oe("ngModel",t.configBlocks[t.selectedBlock]._bridge.manufacturer),d(3),L(S(37,32,"child_bridge.config.model")),d(3),Oe("ngModel",t.configBlocks[t.selectedBlock]._bridge.model),d(3),L(S(43,34,"child_bridge.config.firmware")),d(3),Oe("ngModel",t.configBlocks[t.selectedBlock]._bridge.firmwareRevision),d(),P(t.canShowBridgeDebug?46:-1),d(6),b("innerHTML",Ue(53,36,"settings.service.debug_tooltip",Kt(44,Px,t.linkDebug)),he),d(3),Oe("ngModel",t.configBlocks[t.selectedBlock]._bridge.env.DEBUG),d(7),L(S(63,39,"settings.service.node_tooltip")),d(3),Oe("ngModel",t.configBlocks[t.selectedBlock]._bridge.env.NODE_OPTIONS)}}function iL(e,i){if(e&1&&E(0,tL,66,46),e&2){let t=_(3);P(t.deviceInfo[t.configBlocks[t.selectedBlock]._bridge==null?null:t.configBlocks[t.selectedBlock]._bridge.username]?0:-1)}}function nL(e,i){e&1&&(f(0,"ngb-alert",24),C(1),w(2,"translate"),$(3,"br"),C(4),w(5,"translate"),m()),e&2&&(b("dismissible",!1),d(),B(" ",S(2,3,"child_bridge.restart_homebridge")," "),d(3),B("",S(5,5,"child_bridge.return_to_pair")," "))}function rL(e,i){if(e&1&&(f(0,"ul",22),E(1,W5,11,7),E(2,K5,6,4,"li",23),E(3,G5,7,6,"li",23),E(4,Y5,8,7),E(5,Q5,18,12),E(6,iL,1,1),m(),E(7,nL,6,7,"ngb-alert",24)),e&2){let t=_(2);d(),P(t.configBlocks.length>1?1:-1),d(),P(t.configBlocks.length===1?2:-1),d(),P(t.currentBridgeHasLinks?3:-1),d(),P(t.currentBridgeHasLinks?-1:4),d(),P(t.currentlySelectedLink?5:-1),d(),P(!t.currentlySelectedLink&&(t.configBlocks[t.selectedBlock]._bridge!=null&&t.configBlocks[t.selectedBlock]._bridge.username)?6:-1),d(),P(t.configBlocks[t.selectedBlock]._bridge!=null&&t.configBlocks[t.selectedBlock]._bridge.username&&t.deviceInfo[t.configBlocks[t.selectedBlock]._bridge==null?null:t.configBlocks[t.selectedBlock]._bridge.username]===!1?7:-1)}}function oL(e,i){e&1&&(C(0),w(1,"translate")),e&2&&B(" ",S(1,1,"child_bridge.confirm_delete_2")," ")}function aL(e,i){if(e&1&&(f(0,"li"),C(1),f(2,"span",46),C(3),m(),C(4,") "),m()),e&2){let t=i.$implicit,n=_(3);d(),B(" ",t.bridgeName||(n.deviceInfo[t.id]==null?null:n.deviceInfo[t.id].displayName)," ("),d(2),L(t.id)}}function sL(e,i){if(e&1&&(f(0,"ngb-alert",19)(1,"p"),C(2),w(3,"translate"),E(4,oL,2,3),m(),f(5,"div",9)(6,"ul",52),pt(7,aL,5,2,"li",null,dt),m()()()),e&2){let t=_(2);b("dismissible",!1),d(2),B(" ",S(3,3,"child_bridge.confirm_delete_1")," "),d(2),P(t.deletingPairedBridge?4:-1),d(3),ft(t.deleteBridges)}}function lL(e,i){e&1&&(f(0,"ngb-alert",20),C(1),w(2,"translate"),m()),e&2&&(b("dismissible",!1),d(),B(" ",S(2,2,"child_bridge.must_configure_plugin")," "))}function uL(e,i){if(e&1){let t=H();f(0,"ngb-alert",21)(1,"div",17),C(2),w(3,"translate"),w(4,"translate"),m(),f(5,"button",53),j("click",function(){F(t);let r=_(2);return q(r.openFullConfigEditor())}),C(6),w(7,"translate"),m()()}e&2&&(b("dismissible",!1),d(2),sn(" ",S(3,4,"plugins.settings.message_manual_config_required")," ",S(4,6,"plugins.settings.message_consult_documentation")," "),d(4),B(" ",S(7,8,"plugins.settings.label_open_config_editor")," "))}function cL(e,i){if(e&1&&(f(0,"div",15),$(1,"i",16),m(),f(2,"ul",17),$(3,"li",18),w(4,"translate"),E(5,z5,5,5),m(),E(6,rL,8,7),E(7,sL,9,5,"ngb-alert",19),E(8,lL,3,4,"ngb-alert",20),E(9,uL,8,10,"ngb-alert",21)),e&2){let t=_();d(3),b("innerHTML",Ue(4,6,"child_bridge.about",Kt(9,Px,t.linkChildBridges)),he),d(2),P(t.configBlocks.length?5:-1),d(),P(t.canConfigure&&t.configBlocks.length?6:-1),d(),P(t.deleteBridges.length?7:-1),d(),P(!t.configBlocks.length&&t.canConfigure?8:-1),d(),P(t.canConfigure?-1:9)}}function dL(e,i){if(e&1){let t=H();f(0,"button",54),j("click",function(){F(t);let r=_();return q(r.closeModal())}),C(1),w(2,"translate"),m()}if(e&2){let t=_();b("disabled",t.saveInProgress),d(),B(" ",S(2,2,"form.button_close")," ")}}function pL(e,i){e&1&&$(0,"i",56)}function fL(e,i){if(e&1){let t=H();f(0,"button",55),j("click",function(){F(t);let r=_();return q(r.save())}),C(1),w(2,"translate"),E(3,pL,1,0,"i",56),m()}if(e&2){let t=_();b("disabled",t.saveInProgress),d(),B(" ",S(2,3,"form.button_save")," "),d(2),P(t.saveInProgress?3:-1)}}function mL(e,i){if(e&1){let t=H();f(0,"button",57),j("click",function(){F(t);let r=_();return q(r.closeModal())}),C(1),w(2,"translate"),m()}e&2&&(d(),B(" ",S(2,1,"form.button_close")," "))}function hL(e,i){e&1&&(C(0),w(1,"translate")),e&2&&B(" ",S(1,1,"form.button_save")," ")}function gL(e,i){e&1&&$(0,"i",56)}function _L(e,i){if(e&1){let t=H();f(0,"button",55),j("click",function(){F(t);let r=_(2);return q(r.save())}),E(1,hL,2,3),E(2,gL,1,0,"i",56),m()}if(e&2){let t=_(2);b("disabled",t.saveInProgress||t.loading),d(),P(t.saveInProgress?-1:1),d(),P(t.saveInProgress?2:-1)}}function yL(e,i){if(e&1){let t=H();f(0,"button",59),j("click",function(){F(t);let r=_(2);return q(r.openPluginConfig())}),C(1),w(2,"translate"),m()}e&2&&(d(),B(" ",S(2,1,"plugins.button_settings")," "))}function bL(e,i){if(e&1&&(E(0,_L,3,3,"button",10),E(1,yL,3,3,"button",58)),e&2){let t=_();P(t.configBlocks.length?0:-1),d(),P(t.configBlocks.length?-1:1)}}var Tx=(()=>{class e{$activeModal=k(je);$api=k(ve);$modal=k(et);$plugins=k(nn);$router=k(ai);$settings=k(Be);$toastr=k(we);$translate=k(xe);plugin;schema;justInstalled=!1;loading=!0;canConfigure=!0;configBlocks=[];selectedBlock="0";isPlatform;enabledBlocks={};bridgeCache=new Map;originalBridges=[];deviceInfo=new Map;saveInProgress=!1;canShowBridgeDebug=!1;deleteBridges=[];deletingPairedBridge=!1;accessoryBridgeLinks=[];bridgesAvailableForLink=[];currentlySelectedLink=null;currentBridgeHasLinks=!1;linkChildBridges='<a href="https://github.com/homebridge/homebridge/wiki/Child-Bridges" target="_blank"><i class="fas fa-fw fa-external-link-alt primary-text"></i></a>';linkDebug='<a href="https://github.com/homebridge/homebridge-config-ui-x/wiki/Debug-Common-Values" target="_blank"><i class="fa fa-fw fa-external-link-alt primary-text"></i></a>';ngOnInit(){return K(this,null,function*(){yield Promise.all([this.getPluginType(),this.loadPluginConfig()]),this.canShowBridgeDebug=this.$settings.env.homebridgeVersion.startsWith("2"),this.loading=!1})}onBlockChange(t){if(this.selectedBlock=t,this.currentlySelectedLink=this.accessoryBridgeLinks.find(n=>n.index===t)||null,this.currentBridgeHasLinks=this.accessoryBridgeLinks.some(n=>n.usesIndex===t),this.bridgesAvailableForLink=[],this.configBlocks[Number(t)].accessory)for(let[n,r]of Array.from(this.bridgeCache.entries()))this.deleteBridges.some(o=>o.id===r.username)||n<Number(t)&&this.bridgesAvailableForLink.push({index:n.toString(),usesIndex:t,name:r.name,port:r.port,username:r.username})}onLinkBridgeChange(t){if(t){let n=this.configBlocks.findIndex(o=>o._bridge?.username===t);this.accessoryBridgeLinks.push({index:this.selectedBlock,usesIndex:n.toString(),name:this.bridgeCache.get(n)?.name,port:this.bridgeCache.get(n)?.port,username:t}),this.currentlySelectedLink=this.accessoryBridgeLinks.find(o=>o.index===this.selectedBlock)||null,this.enabledBlocks[Number(this.selectedBlock)]=!0;let r=this.configBlocks[Number(this.selectedBlock)];r._bridge={username:t}}}getPluginType(){return K(this,null,function*(){try{let t=yield ce(this.$api.get(`/plugins/alias/${encodeURIComponent(this.plugin.name)}`));this.isPlatform=t.pluginType==="platform"}catch(t){this.$toastr.error(this.$translate.instant("plugins.config.load_error"),this.$translate.instant("toast.title_error")),this.$activeModal.close(),console.error(t)}})}loadPluginConfig(){return K(this,null,function*(){try{this.configBlocks=yield ce(this.$api.get(`/config-editor/plugin/${encodeURIComponent(this.plugin.name)}`));for(let[n,r]of this.configBlocks.entries())if(r._bridge&&r._bridge.username){this.enabledBlocks[n]=!0;let o=Array.from(this.bridgeCache.values()).findIndex(s=>s.username===r._bridge.username),a=o!==-1?Array.from(this.bridgeCache.values())[o]:void 0;a?(r._bridge.env={},this.accessoryBridgeLinks.push({index:n.toString(),usesIndex:o.toString(),name:a.name,port:a.port,username:r._bridge.username})):(r._bridge.env=r._bridge.env||{},this.bridgeCache.set(n,r._bridge),yield this.getDeviceInfo(r._bridge.username),r._bridge.name||(r._bridge.name=this.deviceInfo[r._bridge.username]?.displayName),this.originalBridges.push(r._bridge))}this.justInstalled&&this.bridgeCache.size===0&&this.configBlocks.forEach((n,r)=>{this.enabledBlocks[r]=!0,this.toggleExternalBridge(n,!0,r.toString())}),this.accessoryBridgeLinks.find(n=>n.username===this.bridgeCache.get(Number(this.selectedBlock))?.username)&&(this.currentBridgeHasLinks=!0)}catch(t){this.canConfigure=!1,console.error(t)}})}toggleExternalBridge(t,n,r){return K(this,null,function*(){if(n){let o=this.bridgeCache.get(Number(r));t._bridge={username:o?o.username:this.generateUsername(),port:yield this.getUnusedPort(),name:o?.name,model:o?.model,manufacturer:o?.manufacturer,firmwareRevision:o?.firmwareRevision,debugModeEnabled:o?.debugModeEnabled,env:o?.env},this.deleteBridges.some(a=>a.id===t._bridge.username)&&(this.deleteBridges=this.deleteBridges.filter(a=>a.id!==t._bridge.username)),this.bridgeCache.set(Number(r),t._bridge),yield this.getDeviceInfo(t._bridge.username)}else{if(this.accessoryBridgeLinks.some(o=>o.index===r))this.accessoryBridgeLinks=this.accessoryBridgeLinks.filter(o=>o.index!==r),this.currentlySelectedLink=null;else{let o=this.originalBridges.find(a=>a.username===t._bridge.username);o&&this.deleteBridges.push({id:t._bridge.username,bridgeName:t._bridge.name||o.displayName,paired:this.deviceInfo[t._bridge.username]?._isPaired})}delete t._bridge}this.deletingPairedBridge=this.deleteBridges.some(o=>o.paired)})}getUnusedPort(){return K(this,null,function*(){this.saveInProgress=!0;try{return(yield ce(this.$api.get("/server/port/new"))).port}catch{return Math.floor(Math.random()*30001+3e4)}finally{this.saveInProgress=!1}})}getDeviceInfo(t){return K(this,null,function*(){try{this.deviceInfo[t]=yield ce(this.$api.get(`/server/pairings/${t.replace(/:/g,"")}`))}catch(n){console.error(n),this.deviceInfo[t]=!1}})}save(){return K(this,null,function*(){this.saveInProgress=!0;try{yield ce(this.$api.post(`/config-editor/plugin/${encodeURIComponent(this.plugin.name)}`,this.configBlocks));for(let t of this.deleteBridges)try{yield ce(this.$api.delete(`/server/pairings/${t.id.replace(/:/g,"")}`))}catch(n){console.error(n),this.$toastr.error(this.$translate.instant("settings.reset_bridge.error"),this.$translate.instant("toast.title_error"))}this.$activeModal.close(),this.$modal.open(si,{size:"lg",backdrop:"static"})}catch(t){console.error(t),this.$toastr.error(this.$translate.instant("config.failed_to_save_config"),this.$translate.instant("toast.title_error"))}finally{this.saveInProgress=!1}})}openPluginConfig(){this.$activeModal.close(),this.$plugins.settings({name:this.plugin.name,settingsSchema:!0,links:{}})}generateUsername(){let t="0123456789ABCDEF",n="0E:";for(let r=0;r<5;r++)n+=t.charAt(Math.round(Math.random()*15)),n+=t.charAt(Math.round(Math.random()*15)),r!==4&&(n+=":");return n}openFullConfigEditor(){this.$router.navigate(["/config"]),this.$activeModal.close()}dismissModal(){this.$activeModal.dismiss("Dismiss")}closeModal(){this.$activeModal.close("Dismiss")}static \u0275fac=function(n){return new(n||e)};static \u0275cmp=Q({type:e,selectors:[["ng-component"]],inputs:{plugin:"plugin",schema:"schema",justInstalled:"justInstalled"},decls:16,vars:8,consts:[[1,"modal-content"],[1,"modal-header"],[1,"modal-title"],["type","button","data-bs-dismiss","modal",1,"btn-close",3,"disabled"],[1,"modal-body"],[1,"text-center","primary-text"],[1,"modal-footer","justify-content-between"],[1,"text-start"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"disabled"],[1,"text-center"],["type","button",1,"btn","btn-primary",3,"disabled"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant"],[1,"text-end"],["type","button","data-bs-dismiss","modal",1,"btn-close",3,"click","disabled"],[1,"fa","fa-fw","fa-cog","fa-spin",2,"font-size","75px"],[1,"mb-3","text-center"],[1,"fas","fa-fw","fa-bridge","primary-text",2,"font-size","75px"],[1,"mb-3"],[3,"innerHTML"],["type","error",1,"mt-3","mb-0",3,"dismissible"],["type","info",3,"dismissible"],["type","info",1,"mb-0",3,"dismissible"],[1,"list-group","list-group-box","mb-0"],[1,"list-group-item","d-flex","flex-column","flex-md-row","align-items-center"],["type","info",1,"mt-3","mb-0",3,"dismissible"],[1,"list-group-item","text-center","grey-text","small"],["for","bridgeSelect",1,"mb-2","mb-md-0","w-100","w-md-50"],[1,"text-start","text-md-end","w-100","w-md-50"],["id","bridgeSelect",1,"custom-select",3,"ngModelChange","change","ngModel"],[3,"value"],[1,"mb-2","mb-md-0","w-100","w-md-50"],[1,"text-start","text-md-end","w-100","w-md-50","grey-text","font-monospace"],[1,"text-start","text-md-end","w-100","w-md-50","grey-text"],[1,"list-group-item","d-flex","justify-content-between","align-items-center","flex-row","pb-2"],[1,"text-end","grey-text","d-flex","align-items-center"],["type","checkbox",1,"rendux-input",3,"change","ngModelChange","id","ngModel"],[1,"rendux-label",3,"for"],["for","bridgeLink",1,"mb-2","mb-md-0","w-100","w-md-50"],["id","bridgeLink",1,"custom-select",3,"change"],[1,"list-group-item","text-center"],[1,"w-100","d-flex","flex-column","text-center"],[1,"mx-auto",2,"width","175px","height","175px",3,"data"],[1,"mx-auto","mt-3","mb-1"],[1,"grey-text","mx-auto","small","mb-1",2,"max-width","400px"],[1,"fas","fa-fw","fa-link",3,"ngClass"],["type","text",1,"form-control","custom-input",3,"ngModelChange","ngModel"],[1,"font-monospace"],[1,"grey-text",3,"innerHTML"],["type","text","placeholder","HAP-NodeJS:Advertiser,HAP-NodeJS:Service",1,"form-control","custom-input",3,"ngModelChange","ngModel"],[1,"grey-text"],["type","text","placeholder","--max-old-space-size=512 --max-http-header-size=8192",1,"form-control","custom-input",3,"ngModelChange","ngModel"],["type","checkbox",1,"rendux-input",3,"ngModelChange","id","ngModel"],[1,"d-inline-block","text-start","mb-0"],[1,"btn","btn-primary","mb-0",3,"click"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click","disabled"],["type","button",1,"btn","btn-primary",3,"click","disabled"],[1,"fas","fa-fw","fa-spinner","fa-pulse"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click"],["type","button","data-bs-dismiss","modal",1,"btn","btn-primary"],["type","button","data-bs-dismiss","modal",1,"btn","btn-primary",3,"click"]],template:function(n,r){n&1&&(f(0,"div",0)(1,"div",1)(2,"h5",2),C(3),m(),E(4,B5,2,4,"button",3),m(),f(5,"div",4),E(6,R5,2,0,"div",5),E(7,cL,10,11),m(),f(8,"div",6)(9,"div",7),E(10,dL,3,4,"button",8),m(),f(11,"div",9),E(12,fL,4,5,"button",10),E(13,mL,3,3,"button",11),m(),f(14,"div",12),E(15,bL,2,2),m()()()),n&2&&(d(3),L(r.plugin.displayName||r.plugin.name),d(),P(r.justInstalled?-1:4),d(2),P(r.loading?6:-1),d(),P(r.loading?-1:7),d(3),P(r.canConfigure&&!r.justInstalled?10:-1),d(2),P(r.justInstalled?12:-1),d(),P(r.canConfigure?-1:13),d(2),P(r.canConfigure&&!r.justInstalled?15:-1))},dependencies:[Gt,cn,dn,An,Fi,Fn,bt,qi,qn,Tp,qt,Ve],styles:[".manage-plugin-config-external-icons[_ngcontent-%COMP%]{font-size:1.5rem;font-weight:700;line-height:1;color:#000;opacity:.5;background-color:transparent;border:0}"]})}return e})();var qd=Me(pa(),1);var Gs=()=>["homebridge","homebridge-config-ui-x"],kx=(e,i,t)=>({pluginName:e,minVersion:i,installedVersion:t}),vL=(e,i,t)=>({minVersion:e,installedVersion:i,latestVersion:t,packageName:"Homebridge"}),CL=()=>({packageName:"Homebridge"}),xL=(e,i,t)=>({minVersion:e,installedVersion:i,latestVersion:t,packageName:"Homebridge UI"}),wL=()=>({packageName:"Homebridge UI"});function IL(e,i){if(e&1&&(f(0,"li",14)(1,"div",17),$(2,"i",18),m(),f(3,"div",19),C(4),w(5,"translate"),m()()),e&2){let t=_(2);d(4),B(" ",Ue(5,1,"plugins.compat.node_too_low",Ft(4,kx,t.plugin.displayName,t.nodeMinVersion,t.nodeInstalledVersion))," ")}}function SL(e,i){if(e&1&&(f(0,"li",14)(1,"div",17),$(2,"i",18),m(),f(3,"div",19),C(4),w(5,"translate"),m()()),e&2){let t=_(2);d(4),B(" ",Ue(5,1,"plugins.compat.hb_too_low",Ft(4,kx,t.plugin.displayName,t.hbMinVersion,t.hbInstalledVersion))," ")}}function $L(e,i){if(e&1&&(f(0,"div",11),$(1,"i",12),m(),f(2,"ul",13),E(3,IL,6,8,"li",14),E(4,SL,6,8,"li",14),m(),f(5,"ngb-alert",15)(6,"p",16),C(7),w(8,"translate"),m()()),e&2){let t=_();d(),Y(np("",t.action==="install"?"far fa-fw fa-arrow-alt-circle-down":t.action==="update"?"far fa-fw fa-arrow-alt-circle-up":"fas fa-fw fa-code-compare"," primary-text")),d(2),P(t.isValidNode?-1:3),d(),P(t.isValidHb?-1:4),d(),b("dismissible",!1),d(2),L(S(8,7,"common.phrases.are_you_sure"))}}function EL(e,i){if(e&1&&(f(0,"div",11),$(1,"i",20),m(),f(2,"ul",13)(3,"li",14)(4,"div",17),$(5,"i",18),m(),f(6,"div",19),C(7),w(8,"translate"),m()()(),f(9,"ngb-alert",15)(10,"p",21),C(11),w(12,"translate"),m(),f(13,"p",16)(14,"a",22),C(15),w(16,"translate"),$(17,"i",23),m()()()),e&2){let t=_();d(7),B(" ",Ue(8,4,"plugins.compat.hb_node_too_low",Ft(12,vL,t.nodeMinVersion,t.nodeInstalledVersion,t.plugin.latestVersion))," "),d(2),b("dismissible",!1),d(2),L(Ue(12,7,"plugins.compat.node_first",Te(16,CL))),d(4),B(" ",S(16,10,"plugins.compat.node_link")," ")}}function PL(e,i){if(e&1&&(f(0,"div",11),$(1,"i",20),m(),f(2,"ul",13)(3,"li",14)(4,"div",17),$(5,"i",18),m(),f(6,"div",19),C(7),w(8,"translate"),m()()(),f(9,"ngb-alert",15)(10,"p",21),C(11),w(12,"translate"),m(),f(13,"p",16)(14,"a",22),C(15),w(16,"translate"),$(17,"i",23),m()()()),e&2){let t=_();d(7),B(" ",Ue(8,4,"plugins.compat.hb_node_too_low",Ft(12,xL,t.nodeMinVersion,t.nodeInstalledVersion,t.plugin.latestVersion))," "),d(2),b("dismissible",!1),d(2),L(Ue(12,7,"plugins.compat.node_first",Te(16,wL))),d(4),B(" ",S(16,10,"plugins.compat.node_link")," ")}}function TL(e,i){if(e&1){let t=H();f(0,"button",24),j("click",function(){F(t);let r=_();return q(r.dismissModal())}),C(1),w(2,"translate"),m()}e&2&&(d(),B(" ",S(2,1,"form.button_close")," "))}function kL(e,i){if(e&1){let t=H();f(0,"button",24),j("click",function(){F(t);let r=_();return q(r.dismissModal())}),C(1),w(2,"translate"),m()}e&2&&(d(),B(" ",S(2,1,"form.button_close")," "))}function ML(e,i){if(e&1){let t=H();f(0,"button",25),j("click",function(){F(t);let r=_();return q(r.closeModal())}),C(1),w(2,"translate"),m()}e&2&&(d(),B(" ",S(2,1,"form.button_continue")," "))}var Mx=(()=>{class e{$activeModal=k(je);$settings=k(Be);plugin;isValidNode;isValidHb;action;nodeMinVersion;nodeInstalledVersion;hbMinVersion;hbInstalledVersion;ngOnInit(){this.nodeMinVersion=(0,qd.minVersion)(this.plugin.updateEngines?.node),this.nodeInstalledVersion=this.$settings.env.nodeVersion,this.hbMinVersion=(0,qd.minVersion)(this.plugin.updateEngines?.homebridge),this.hbInstalledVersion=this.$settings.env.homebridgeVersion}dismissModal(){this.$activeModal.dismiss("Dismiss")}closeModal(){this.$activeModal.close(!0)}static \u0275fac=function(n){return new(n||e)};static \u0275cmp=Q({type:e,selectors:[["ng-component"]],inputs:{plugin:"plugin",isValidNode:"isValidNode",isValidHb:"isValidHb",action:"action"},decls:18,vars:16,consts:[[1,"modal-content",2,"min-height","300px"],[1,"modal-header"],[1,"modal-title"],["type","button","data-bs-dismiss","modal",1,"btn-close",3,"click"],[1,"modal-body"],[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"],["type","button","data-bs-dismiss","modal",1,"btn","btn-danger"],[1,"text-center","mb-3"],[2,"font-size","75px"],[1,"list-group","list-group-box","mb-3","text-start"],[1,"list-group-item","d-flex","justify-content-between","align-items-center"],["type","warning",1,"mb-0",3,"dismissible"],[1,"text-center","mb-0"],[1,"me-3"],[1,"fas","fa-exclamation-circle","orange-text","fa-xl"],[1,"text-start","flex-grow-1"],[1,"fab","fa-fw","fa-node-js","primary-text",2,"font-size","75px"],[1,"text-center","mb-1"],["href","https://homebridge.io/w/JTKEF","target","_blank","rel","noopener noreferrer"],[1,"fa","fa-fw","fa-external-link-alt"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click"],["type","button","data-bs-dismiss","modal",1,"btn","btn-danger",3,"click"]],template:function(n,r){n&1&&(f(0,"div",0)(1,"div",1)(2,"h5",2),C(3),w(4,"translate"),m(),f(5,"button",3),w(6,"translate"),j("click",function(){return r.dismissModal()}),m()(),f(7,"div",4),E(8,$L,9,9),E(9,EL,18,17),E(10,PL,18,17),m(),f(11,"div",5)(12,"div",6),E(13,TL,3,3,"button",7),m(),f(14,"div",8),E(15,kL,3,3,"button",7),m(),f(16,"div",9),E(17,ML,3,3,"button",10),m()()()),n&2&&(d(3),L(S(4,8,"plugins.compat.title")),d(2),G("aria-label",S(6,10,"form.button_close")),d(3),P(Te(12,Gs).includes(r.plugin.name)?-1:8),d(),P(r.plugin.name==="homebridge"?9:-1),d(),P(r.plugin.name==="homebridge-config-ui-x"?10:-1),d(3),P(Te(13,Gs).includes(r.plugin.name)?-1:13),d(2),P(Te(14,Gs).includes(r.plugin.name)?15:-1),d(2),P(Te(15,Gs).includes(r.plugin.name)?-1:17))},dependencies:[qn,Ve],encapsulation:2})}return e})();var rt=[];for(let e=0;e<256;++e)rt.push((e+256).toString(16).slice(1));function Ox(e,i=0){return(rt[e[i+0]]+rt[e[i+1]]+rt[e[i+2]]+rt[e[i+3]]+"-"+rt[e[i+4]]+rt[e[i+5]]+"-"+rt[e[i+6]]+rt[e[i+7]]+"-"+rt[e[i+8]]+rt[e[i+9]]+"-"+rt[e[i+10]]+rt[e[i+11]]+rt[e[i+12]]+rt[e[i+13]]+rt[e[i+14]]+rt[e[i+15]]).toLowerCase()}var jd,OL=new Uint8Array(16);function Vd(){if(!jd){if(typeof crypto>"u"||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");jd=crypto.getRandomValues.bind(crypto)}return jd(OL)}var DL=typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto),Bd={randomUUID:DL};function NL(e,i,t){if(Bd.randomUUID&&!i&&!e)return Bd.randomUUID();e=e||{};let n=e.random??e.rng?.()??Vd();if(n.length<16)throw new Error("Random bytes length must be >= 16");if(n[6]=n[6]&15|64,n[8]=n[8]&63|128,i){if(t=t||0,t<0||t+16>i.length)throw new RangeError(`UUID byte range ${t}:${t+15} is out of buffer bounds`);for(let r=0;r<16;++r)i[t+r]=n[r];return i}return Ox(n)}var Js=NL;var Dx=Me($r(),1);var Nx=(()=>{class e{$api=k(ve);$toastr=k(we);$translate=k(xe);downloadDumpFile(){this.$api.get("/plugins/custom-plugins/homebridge-deconz/dump-file",{observe:"response",responseType:"blob"}).subscribe({next:t=>{(0,Dx.saveAs)(t.body,"homebridge-deconz.json.gz")},error:t=>{console.error(t),this.$toastr.error(this.$translate.instant("plugins.settings.deconz.dump_no_exist"),this.$translate.instant("toast.title_error"))}})}static \u0275fac=function(n){return new(n||e)};static \u0275cmp=Q({type:e,selectors:[["app-homebridge-deconz"]],decls:3,vars:0,consts:[["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant","m-0",3,"click"],[1,"fas","fa-fw","fa-download"]],template:function(n,r){n&1&&(ri(0,"button",0),Mi("click",function(){return r.downloadDumpFile()}),an(1,"i",1),C(2,` Download Dump File
@@ -1 +1 @@
1
- import{m as J}from"./chunk-MJK6N6PA.js";import{e as O,l as W,r as z,s as q,t as G,z as H}from"./chunk-VPU5FNT3.js";import{d as Y}from"./chunk-25NXLXGL.js";import{k as X,n as Z}from"./chunk-5CJVTJIE.js";import{a as K,b as Q}from"./chunk-CPAHENLQ.js";import{Ec as N,Fc as P,Hb as A,Hc as m,Ib as _,Ic as p,Jb as u,Lb as k,Mb as E,Nb as $,Ob as C,Pb as o,Qb as a,Rb as w,_b as B,a as T,ab as s,b as R,bc as b,dc as d,h as M,id as j,la as y,mb as D,qc as c,ra as f,rc as g,sa as v,sc as h,tc as V,w as S,xc as F,yc as U,zc as L}from"./chunk-WEVBEUAJ.js";var te=(t,l)=>({"btn-danger":t,"btn-elegant":l}),ie=(t,l,e)=>({"fa-trash":t,"fa-undo":l,"fa-spinner fa-pulse":e});function ne(t,l){t&1&&(o(0,"div",12),w(1,"i",13),a(),o(2,"p",14),c(3),m(4,"translate"),a()),t&2&&(s(3),g(p(4,1,"reset.no_accessories")))}function se(t,l){if(t&1&&(o(0,"option",24),c(1),a()),t&2){let e=l.$implicit;C("value",e._id),s(),V("",e.name," (",e._username,")")}}function oe(t,l){if(t&1){let e=B();o(0,"li",20),c(1),m(2,"translate"),a(),o(3,"li",18)(4,"label",21),c(5),m(6,"translate"),a(),o(7,"div",22)(8,"select",23),L("ngModelChange",function(i){f(e);let r=d(2);return U(r.selectedBridge,i)||(r.selectedBridge=i),v(i)}),b("change",function(i){f(e);let r=d(2);return v(r.onBridgeChange(i.target.value))}),E(9,se,2,3,"option",24,k),a()()()}if(t&2){let e=d(2);s(),g(p(2,3,"form.label.changes_kept")),s(4),g(p(6,5,"reset.accessory_ind.bridge")),s(3),F("ngModel",e.selectedBridge),s(),$(e.pairings)}}function ae(t,l){if(t&1&&(o(0,"li",18)(1,"label",25),c(2),m(3,"translate"),a(),o(4,"div",26),c(5),a()()),t&2){let e=d(2);s(2),g(p(3,2,"reset.accessory_ind.bridge")),s(3),h(" ",e.getCurrentlySelectedBridge()," ")}}function re(t,l){if(t&1){let e=B();o(0,"li",19)(1,"span"),c(2),w(3,"br"),o(4,"small")(5,"span",27),c(6),a()()(),o(7,"button",28),m(8,"translate"),b("click",function(){let i=f(e).$implicit,r=d(2);return v(r.toggleList(i.UUID,i.$cacheFile))}),w(9,"i",29),a()()}if(t&2){let e=l.$implicit,n=d(2);s(2),h(" ",e.displayName),s(4),g(e.UUID),s(),C("disabled",n.clicked)("ngClass",N(8,te,!n.isInList(e.UUID,e.$cacheFile),n.isInList(e.UUID,e.$cacheFile))),A("aria-label",p(8,6,"form.button_delete")),s(2),C("ngClass",P(11,ie,!n.isInList(e.UUID,e.$cacheFile),n.isInList(e.UUID,e.$cacheFile)&&!n.clicked,n.isInList(e.UUID,e.$cacheFile)&&n.clicked))}}function le(t,l){if(t&1&&(o(0,"div",12),w(1,"i",15),a(),o(2,"ul",16)(3,"li"),c(4),m(5,"translate"),a(),o(6,"li"),c(7),m(8,"translate"),a(),o(9,"li"),c(10),m(11,"translate"),a()(),o(12,"ul",17),_(13,oe,11,7),_(14,ae,6,4,"li",18),E(15,re,10,15,"li",19,k),a()),t&2){let e=d();s(4),g(p(5,5,"reset.accessory_ind.list_1")),s(3),g(p(8,7,"reset.accessory_ind.list_2")),s(3),g(p(11,9,"reset.accessory_ind.list_3")),s(3),u(e.pairings.length>1?13:-1),s(),u(e.pairings.length===1?14:-1),s(),$(e.selectedBridgeAccessories)}}function ce(t,l){if(t&1){let e=B();o(0,"button",30),b("click",function(){f(e);let i=d();return v(i.dismissModal())}),c(1),m(2,"translate"),a()}if(t&2){let e=d();C("disabled",e.clicked),s(),h(" ",p(2,2,"form.button_close")," ")}}function de(t,l){if(t&1){let e=B();o(0,"button",31),b("click",function(){f(e);let i=d();return v(i.dismissModal())}),c(1),m(2,"translate"),a()}t&2&&(s(),h(" ",p(2,1,"form.button_close")," "))}function me(t,l){if(t&1&&c(0),t&2){let e=d(3);h(" (",e.toDelete.length,") ")}}function pe(t,l){if(t&1&&(c(0),m(1,"translate"),_(2,me,1,1)),t&2){let e=d(2);h(" ",p(1,2,"form.button_remove")," "),s(2),u(e.toDelete.length>0?2:-1)}}function _e(t,l){t&1&&w(0,"i",33)}function ue(t,l){if(t&1){let e=B();o(0,"button",32),b("click",function(){f(e);let i=d();return v(i.removeAccessories())}),_(1,pe,3,4),_(2,_e,1,0,"i",33),a()}if(t&2){let e=d();C("disabled",!e.toDelete.length||e.clicked),s(),u(e.clicked?-1:1),s(),u(e.clicked?2:-1)}}var ke=(()=>{class t{$activeModal=y(J);$api=y(Z);$router=y(Y);$toastr=y(X);$translate=y(K);selectedBridge="";pairings=[];clicked=!1;selectedBridgeAccessories=[];accessoriesExist=!1;toDelete=[];ngOnInit(){this.loadCachedAccessories()}onBridgeChange(e){this.selectedBridge=e,this.selectedBridgeAccessories=this.pairings.find(n=>n._id===this.selectedBridge)?.accessories}getCurrentlySelectedBridge(){let e=this.pairings.find(n=>n._id===this.selectedBridge);return`${e.name} - ${e._username}`}toggleList(e,n){this.toDelete.some(i=>i.uuid===e&&i.cacheFile===n)?this.toDelete=this.toDelete.filter(i=>i.uuid!==e||i.cacheFile!==n):this.toDelete.push({cacheFile:n,uuid:e})}isInList(e,n){return this.toDelete.some(i=>i.uuid===e&&i.cacheFile===n)}removeAccessories(){return this.clicked=!0,this.$api.delete("/server/cached-accessories",{body:this.toDelete}).subscribe({next:()=>{this.$toastr.success(this.$translate.instant("reset.accessory_ind.done"),this.$translate.instant("toast.title_success")),this.$activeModal.close(),this.$router.navigate(["/restart"],{queryParams:{restarting:!0}})},error:e=>{this.clicked=!1,console.error(e),this.$toastr.error(this.$translate.instant("reset.accessory_ind.fail"),this.$translate.instant("toast.title_error"))}})}dismissModal(){this.$activeModal.dismiss("Dismiss")}loadCachedAccessories(){return M(this,null,function*(){try{let[e,n]=yield Promise.all([S(this.$api.get("/server/cached-accessories")),S(this.$api.get("/server/pairings"))]),i=new Map(n.map(r=>[r._id,R(T({},r),{accessories:[]})]));e.sort((r,x)=>r.displayName.localeCompare(x.displayName)).forEach(r=>{let x=n.find(ee=>ee._main),I=r.$cacheFile?.split(".")?.[1]||x._id;(!this.selectedBridge||this.selectedBridge===I)&&(i.has(I)||i.set(I,{_id:I,_username:I.match(/.{1,2}/g).join(":"),name:this.$translate.instant("reset.accessory_ind.unknown"),accessories:[]}),i.get(I).accessories.push(r))}),this.pairings=Array.from(i.values()).filter(r=>r.accessories.length>0).sort((r,x)=>r._main&&!x._main?-1:!r._main&&x._main?1:r.name.localeCompare(x.name)),this.selectedBridge=this.selectedBridge||this.pairings[0]?._id,this.selectedBridge&&(this.accessoriesExist=!0,this.selectedBridgeAccessories=this.pairings[0].accessories)}catch(e){console.error(e),this.$toastr.error(this.$translate.instant("reset.error_message"),this.$translate.instant("toast.title_error")),this.$activeModal.close()}})}static \u0275fac=function(n){return new(n||t)};static \u0275cmp=D({type:t,selectors:[["ng-component"]],inputs:{selectedBridge:"selectedBridge"},decls:17,vars:12,consts:[[1,"modal-content"],[1,"modal-header"],[1,"modal-title"],["type","button","data-bs-dismiss","modal",1,"btn-close",3,"click","disabled"],[1,"modal-body"],[1,"modal-footer","justify-content-between"],[1,"text-start"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"disabled"],[1,"text-center"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant"],[1,"text-end"],["type","button","data-bs-dismiss","modal",1,"btn","btn-danger",3,"disabled"],[1,"text-center","mb-3"],[1,"fas","fa-fw","fa-circle-check","primary-text",2,"font-size","75px"],[1,"mb-0","text-center"],[1,"fas","fa-fw","fa-network-wired","primary-text",2,"font-size","75px"],[1,"mb-3"],[1,"list-group","list-group-box","mb-0"],[1,"list-group-item","d-flex","flex-column","flex-md-row","align-items-center"],[1,"list-group-item","d-flex","justify-content-between","align-items-center"],[1,"list-group-item","text-center","grey-text","small"],["for","bridgeSelect",1,"mb-2","mb-md-0","w-100","w-md-50"],[1,"text-start","text-md-end","w-100","w-md-50"],["id","bridgeSelect",1,"custom-select",3,"ngModelChange","change","ngModel"],[3,"value"],[1,"mb-2","mb-md-0","w-100","w-md-50"],[1,"text-start","text-md-end","w-100","w-md-50","grey-text","font-monospace"],[1,"font-monospace","grey-text"],[1,"btn","btn-danger","m-0","ms-3",3,"click","disabled","ngClass"],[1,"fas","fa-fw",3,"ngClass"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click","disabled"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click"],["type","button","data-bs-dismiss","modal",1,"btn","btn-danger",3,"click","disabled"],[1,"fas","fa-fw","fa-spinner","fa-pulse"]],template:function(n,i){n&1&&(o(0,"div",0)(1,"div",1)(2,"h5",2),c(3),m(4,"translate"),a(),o(5,"button",3),m(6,"translate"),b("click",function(){return i.dismissModal()}),a()(),o(7,"div",4),_(8,ne,5,3),_(9,le,17,11),a(),o(10,"div",5)(11,"div",6),_(12,ce,3,4,"button",7),a(),o(13,"div",8),_(14,de,3,3,"button",9),a(),o(15,"div",10),_(16,ue,3,3,"button",11),a()()()),n&2&&(s(3),g(p(4,8,"reset.accessory_ind.title")),s(2),C("disabled",i.clicked),A("aria-label",p(6,10,"form.button_close")),s(3),u(i.accessoriesExist?-1:8),s(),u(i.accessoriesExist?9:-1),s(3),u(i.accessoriesExist?12:-1),s(2),u(i.accessoriesExist?-1:14),s(2),u(i.accessoriesExist?16:-1))},dependencies:[j,H,q,G,z,O,W,Q],encapsulation:2})}return t})();export{ke as a};
1
+ import{m as J}from"./chunk-MJK6N6PA.js";import{e as O,l as W,r as z,s as q,t as G,z as H}from"./chunk-VPU5FNT3.js";import{d as Y}from"./chunk-25NXLXGL.js";import{k as X,n as Z}from"./chunk-VZCAAS2X.js";import{a as K,b as Q}from"./chunk-CPAHENLQ.js";import{Ec as N,Fc as P,Hb as A,Hc as m,Ib as _,Ic as p,Jb as u,Lb as k,Mb as E,Nb as $,Ob as C,Pb as o,Qb as a,Rb as w,_b as B,a as T,ab as s,b as R,bc as b,dc as d,h as M,id as j,la as y,mb as D,qc as c,ra as f,rc as g,sa as v,sc as h,tc as V,w as S,xc as F,yc as U,zc as L}from"./chunk-WEVBEUAJ.js";var te=(t,l)=>({"btn-danger":t,"btn-elegant":l}),ie=(t,l,e)=>({"fa-trash":t,"fa-undo":l,"fa-spinner fa-pulse":e});function ne(t,l){t&1&&(o(0,"div",12),w(1,"i",13),a(),o(2,"p",14),c(3),m(4,"translate"),a()),t&2&&(s(3),g(p(4,1,"reset.no_accessories")))}function se(t,l){if(t&1&&(o(0,"option",24),c(1),a()),t&2){let e=l.$implicit;C("value",e._id),s(),V("",e.name," (",e._username,")")}}function oe(t,l){if(t&1){let e=B();o(0,"li",20),c(1),m(2,"translate"),a(),o(3,"li",18)(4,"label",21),c(5),m(6,"translate"),a(),o(7,"div",22)(8,"select",23),L("ngModelChange",function(i){f(e);let r=d(2);return U(r.selectedBridge,i)||(r.selectedBridge=i),v(i)}),b("change",function(i){f(e);let r=d(2);return v(r.onBridgeChange(i.target.value))}),E(9,se,2,3,"option",24,k),a()()()}if(t&2){let e=d(2);s(),g(p(2,3,"form.label.changes_kept")),s(4),g(p(6,5,"reset.accessory_ind.bridge")),s(3),F("ngModel",e.selectedBridge),s(),$(e.pairings)}}function ae(t,l){if(t&1&&(o(0,"li",18)(1,"label",25),c(2),m(3,"translate"),a(),o(4,"div",26),c(5),a()()),t&2){let e=d(2);s(2),g(p(3,2,"reset.accessory_ind.bridge")),s(3),h(" ",e.getCurrentlySelectedBridge()," ")}}function re(t,l){if(t&1){let e=B();o(0,"li",19)(1,"span"),c(2),w(3,"br"),o(4,"small")(5,"span",27),c(6),a()()(),o(7,"button",28),m(8,"translate"),b("click",function(){let i=f(e).$implicit,r=d(2);return v(r.toggleList(i.UUID,i.$cacheFile))}),w(9,"i",29),a()()}if(t&2){let e=l.$implicit,n=d(2);s(2),h(" ",e.displayName),s(4),g(e.UUID),s(),C("disabled",n.clicked)("ngClass",N(8,te,!n.isInList(e.UUID,e.$cacheFile),n.isInList(e.UUID,e.$cacheFile))),A("aria-label",p(8,6,"form.button_delete")),s(2),C("ngClass",P(11,ie,!n.isInList(e.UUID,e.$cacheFile),n.isInList(e.UUID,e.$cacheFile)&&!n.clicked,n.isInList(e.UUID,e.$cacheFile)&&n.clicked))}}function le(t,l){if(t&1&&(o(0,"div",12),w(1,"i",15),a(),o(2,"ul",16)(3,"li"),c(4),m(5,"translate"),a(),o(6,"li"),c(7),m(8,"translate"),a(),o(9,"li"),c(10),m(11,"translate"),a()(),o(12,"ul",17),_(13,oe,11,7),_(14,ae,6,4,"li",18),E(15,re,10,15,"li",19,k),a()),t&2){let e=d();s(4),g(p(5,5,"reset.accessory_ind.list_1")),s(3),g(p(8,7,"reset.accessory_ind.list_2")),s(3),g(p(11,9,"reset.accessory_ind.list_3")),s(3),u(e.pairings.length>1?13:-1),s(),u(e.pairings.length===1?14:-1),s(),$(e.selectedBridgeAccessories)}}function ce(t,l){if(t&1){let e=B();o(0,"button",30),b("click",function(){f(e);let i=d();return v(i.dismissModal())}),c(1),m(2,"translate"),a()}if(t&2){let e=d();C("disabled",e.clicked),s(),h(" ",p(2,2,"form.button_close")," ")}}function de(t,l){if(t&1){let e=B();o(0,"button",31),b("click",function(){f(e);let i=d();return v(i.dismissModal())}),c(1),m(2,"translate"),a()}t&2&&(s(),h(" ",p(2,1,"form.button_close")," "))}function me(t,l){if(t&1&&c(0),t&2){let e=d(3);h(" (",e.toDelete.length,") ")}}function pe(t,l){if(t&1&&(c(0),m(1,"translate"),_(2,me,1,1)),t&2){let e=d(2);h(" ",p(1,2,"form.button_remove")," "),s(2),u(e.toDelete.length>0?2:-1)}}function _e(t,l){t&1&&w(0,"i",33)}function ue(t,l){if(t&1){let e=B();o(0,"button",32),b("click",function(){f(e);let i=d();return v(i.removeAccessories())}),_(1,pe,3,4),_(2,_e,1,0,"i",33),a()}if(t&2){let e=d();C("disabled",!e.toDelete.length||e.clicked),s(),u(e.clicked?-1:1),s(),u(e.clicked?2:-1)}}var ke=(()=>{class t{$activeModal=y(J);$api=y(Z);$router=y(Y);$toastr=y(X);$translate=y(K);selectedBridge="";pairings=[];clicked=!1;selectedBridgeAccessories=[];accessoriesExist=!1;toDelete=[];ngOnInit(){this.loadCachedAccessories()}onBridgeChange(e){this.selectedBridge=e,this.selectedBridgeAccessories=this.pairings.find(n=>n._id===this.selectedBridge)?.accessories}getCurrentlySelectedBridge(){let e=this.pairings.find(n=>n._id===this.selectedBridge);return`${e.name} - ${e._username}`}toggleList(e,n){this.toDelete.some(i=>i.uuid===e&&i.cacheFile===n)?this.toDelete=this.toDelete.filter(i=>i.uuid!==e||i.cacheFile!==n):this.toDelete.push({cacheFile:n,uuid:e})}isInList(e,n){return this.toDelete.some(i=>i.uuid===e&&i.cacheFile===n)}removeAccessories(){return this.clicked=!0,this.$api.delete("/server/cached-accessories",{body:this.toDelete}).subscribe({next:()=>{this.$toastr.success(this.$translate.instant("reset.accessory_ind.done"),this.$translate.instant("toast.title_success")),this.$activeModal.close(),this.$router.navigate(["/restart"],{queryParams:{restarting:!0}})},error:e=>{this.clicked=!1,console.error(e),this.$toastr.error(this.$translate.instant("reset.accessory_ind.fail"),this.$translate.instant("toast.title_error"))}})}dismissModal(){this.$activeModal.dismiss("Dismiss")}loadCachedAccessories(){return M(this,null,function*(){try{let[e,n]=yield Promise.all([S(this.$api.get("/server/cached-accessories")),S(this.$api.get("/server/pairings"))]),i=new Map(n.map(r=>[r._id,R(T({},r),{accessories:[]})]));e.sort((r,x)=>r.displayName.localeCompare(x.displayName)).forEach(r=>{let x=n.find(ee=>ee._main),I=r.$cacheFile?.split(".")?.[1]||x._id;(!this.selectedBridge||this.selectedBridge===I)&&(i.has(I)||i.set(I,{_id:I,_username:I.match(/.{1,2}/g).join(":"),name:this.$translate.instant("reset.accessory_ind.unknown"),accessories:[]}),i.get(I).accessories.push(r))}),this.pairings=Array.from(i.values()).filter(r=>r.accessories.length>0).sort((r,x)=>r._main&&!x._main?-1:!r._main&&x._main?1:r.name.localeCompare(x.name)),this.selectedBridge=this.selectedBridge||this.pairings[0]?._id,this.selectedBridge&&(this.accessoriesExist=!0,this.selectedBridgeAccessories=this.pairings[0].accessories)}catch(e){console.error(e),this.$toastr.error(this.$translate.instant("reset.error_message"),this.$translate.instant("toast.title_error")),this.$activeModal.close()}})}static \u0275fac=function(n){return new(n||t)};static \u0275cmp=D({type:t,selectors:[["ng-component"]],inputs:{selectedBridge:"selectedBridge"},decls:17,vars:12,consts:[[1,"modal-content"],[1,"modal-header"],[1,"modal-title"],["type","button","data-bs-dismiss","modal",1,"btn-close",3,"click","disabled"],[1,"modal-body"],[1,"modal-footer","justify-content-between"],[1,"text-start"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"disabled"],[1,"text-center"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant"],[1,"text-end"],["type","button","data-bs-dismiss","modal",1,"btn","btn-danger",3,"disabled"],[1,"text-center","mb-3"],[1,"fas","fa-fw","fa-circle-check","primary-text",2,"font-size","75px"],[1,"mb-0","text-center"],[1,"fas","fa-fw","fa-network-wired","primary-text",2,"font-size","75px"],[1,"mb-3"],[1,"list-group","list-group-box","mb-0"],[1,"list-group-item","d-flex","flex-column","flex-md-row","align-items-center"],[1,"list-group-item","d-flex","justify-content-between","align-items-center"],[1,"list-group-item","text-center","grey-text","small"],["for","bridgeSelect",1,"mb-2","mb-md-0","w-100","w-md-50"],[1,"text-start","text-md-end","w-100","w-md-50"],["id","bridgeSelect",1,"custom-select",3,"ngModelChange","change","ngModel"],[3,"value"],[1,"mb-2","mb-md-0","w-100","w-md-50"],[1,"text-start","text-md-end","w-100","w-md-50","grey-text","font-monospace"],[1,"font-monospace","grey-text"],[1,"btn","btn-danger","m-0","ms-3",3,"click","disabled","ngClass"],[1,"fas","fa-fw",3,"ngClass"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click","disabled"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click"],["type","button","data-bs-dismiss","modal",1,"btn","btn-danger",3,"click","disabled"],[1,"fas","fa-fw","fa-spinner","fa-pulse"]],template:function(n,i){n&1&&(o(0,"div",0)(1,"div",1)(2,"h5",2),c(3),m(4,"translate"),a(),o(5,"button",3),m(6,"translate"),b("click",function(){return i.dismissModal()}),a()(),o(7,"div",4),_(8,ne,5,3),_(9,le,17,11),a(),o(10,"div",5)(11,"div",6),_(12,ce,3,4,"button",7),a(),o(13,"div",8),_(14,de,3,3,"button",9),a(),o(15,"div",10),_(16,ue,3,3,"button",11),a()()()),n&2&&(s(3),g(p(4,8,"reset.accessory_ind.title")),s(2),C("disabled",i.clicked),A("aria-label",p(6,10,"form.button_close")),s(3),u(i.accessoriesExist?-1:8),s(),u(i.accessoriesExist?9:-1),s(3),u(i.accessoriesExist?12:-1),s(2),u(i.accessoriesExist?-1:14),s(2),u(i.accessoriesExist?16:-1))},dependencies:[j,H,q,G,z,O,W,Q],encapsulation:2})}return t})();export{ke as a};