homebridge-config-ui-x 5.8.1-beta.14 → 5.8.1-beta.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/core/config/config.interfaces.d.ts +3 -0
- package/dist/modules/config-editor/config-editor.controller.d.ts +2 -4
- package/dist/modules/config-editor/config-editor.controller.js +0 -1
- package/dist/modules/config-editor/config-editor.controller.js.map +1 -1
- package/dist/modules/config-editor/config-editor.service.d.ts +3 -5
- package/dist/modules/config-editor/config-editor.service.js +4 -0
- package/dist/modules/config-editor/config-editor.service.js.map +1 -1
- package/dist/modules/server/server.service.js +10 -0
- package/dist/modules/server/server.service.js.map +1 -1
- package/package.json +11 -11
- package/public/{chunk-226FUQBX.js → chunk-2DXY4SSZ.js} +1 -1
- package/public/{chunk-26RP2WUW.js → chunk-3GETVWW5.js} +1 -1
- package/public/{chunk-E6CSCHAX.js → chunk-3M5AQ7HH.js} +1 -1
- package/public/{chunk-DTZGQQKA.js → chunk-44IUMKRC.js} +3 -3
- package/public/{chunk-7MDEVIXA.js → chunk-4ATCZGT7.js} +1 -1
- package/public/{chunk-YLSOS2RG.js → chunk-4KHHJ6O7.js} +1 -1
- package/public/{chunk-UHLA63MQ.js → chunk-6DK24FPQ.js} +1 -1
- package/public/{chunk-EMVU2XAG.js → chunk-6OCR2WJ3.js} +1 -1
- package/public/{chunk-5QQZMCII.js → chunk-7DDNZGBS.js} +1 -1
- package/public/{chunk-R5GTIU46.js → chunk-7KIDPQNT.js} +1 -1
- package/public/{chunk-WCH5ZVOS.js → chunk-7OWZIIPX.js} +2 -2
- package/public/{chunk-7Y4AXRRG.js → chunk-B7RLTYUZ.js} +1 -1
- package/public/{chunk-IXREESCC.js → chunk-BNHJGP2Q.js} +1 -1
- package/public/{chunk-WKARJHBX.js → chunk-BUXRCYZ3.js} +1 -1
- package/public/{chunk-XFXDPVAB.js → chunk-BZVVKWVW.js} +1 -1
- package/public/{chunk-YEDV5F2U.js → chunk-CAK77ZJG.js} +1 -1
- package/public/{chunk-E2XEMZG2.js → chunk-CMUJLMKB.js} +1 -1
- package/public/{chunk-C7FAUYTX.js → chunk-D3RFSE7L.js} +1 -1
- package/public/{chunk-OSYWJ6WY.js → chunk-D7LRZYF6.js} +1 -1
- package/public/{chunk-M7CZR2LQ.js → chunk-DQ4KZYYB.js} +1 -1
- package/public/{chunk-2UGHC53U.js → chunk-EYURBH2I.js} +1 -1
- package/public/{chunk-G2U5UWE6.js → chunk-FWNFFW6C.js} +1 -1
- package/public/chunk-G4V242OZ.js +1 -0
- package/public/{chunk-JJDRFQVO.js → chunk-GGUXE7AI.js} +1 -1
- package/public/{chunk-YAVIVBVJ.js → chunk-JHGAHTM2.js} +1 -1
- package/public/{chunk-S35WE4W4.js → chunk-JKZH6VAZ.js} +1 -1
- package/public/{chunk-KOIM2MFD.js → chunk-JUIBLDHY.js} +1 -1
- package/public/{chunk-3VL4ND5K.js → chunk-JYFQKONR.js} +1 -1
- package/public/{chunk-FBJSAKJ2.js → chunk-LV54DJY7.js} +1 -1
- package/public/{chunk-LZJC5H3Z.js → chunk-MKQHAKWO.js} +1 -1
- package/public/{chunk-R6NYXKRO.js → chunk-MPFO5MKE.js} +1 -1
- package/public/{chunk-BOLCF4OO.js → chunk-MZO73C4B.js} +1 -1
- package/public/{chunk-N6AKYUMC.js → chunk-N3GFGJ6U.js} +1 -1
- package/public/{chunk-GOF4UORW.js → chunk-N3LM3KJA.js} +1 -1
- package/public/{chunk-6XHSDPU3.js → chunk-ND6Q3577.js} +1 -1
- package/public/{chunk-Y4EY4AMI.js → chunk-NRHGWAVT.js} +1 -1
- package/public/{chunk-L2BBLX7X.js → chunk-NT7XWYWM.js} +1 -1
- package/public/{chunk-G5WDJTJP.js → chunk-OJML56DH.js} +1 -1
- package/public/{chunk-AG22QUSB.js → chunk-PSBPIZSE.js} +1 -1
- package/public/{chunk-4OKB7AUD.js → chunk-QLL4XJ6O.js} +1 -1
- package/public/{chunk-VK2UGXX2.js → chunk-QZT56NRO.js} +1 -1
- package/public/{chunk-UK3MMDHV.js → chunk-S3KWGY7Q.js} +1 -1
- package/public/{chunk-IYDZECG4.js → chunk-S6PCNWMK.js} +1 -1
- package/public/{chunk-SGCTZV2R.js → chunk-SCYX4EQC.js} +1 -1
- package/public/{chunk-SZWVIMEZ.js → chunk-SXPIMD3N.js} +1 -1
- package/public/{chunk-25PJ775M.js → chunk-TIRP5BAN.js} +1 -1
- package/public/{chunk-FRPAYIBC.js → chunk-U5MKNRR6.js} +1 -1
- package/public/{chunk-XJVAYI5T.js → chunk-V7L6YVTJ.js} +1 -1
- package/public/{chunk-NSZ6YJ47.js → chunk-VC72YRS6.js} +1 -1
- package/public/{chunk-EJTTHINX.js → chunk-WRDGXJ2N.js} +1 -1
- package/public/{chunk-5AOFTE4E.js → chunk-XHQ3QXJW.js} +1 -1
- package/public/{chunk-N2LRAUVZ.js → chunk-XZQTI646.js} +1 -1
- package/public/{chunk-N7OXMNRL.js → chunk-ZAX4JMKU.js} +1 -1
- package/public/index.html +1 -1
- package/public/{main-ZKADKRHW.js → main-QBQJVTGA.js} +1 -1
- package/public/chunk-YKWNIOX3.js +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as zv}from"./chunk-226FUQBX.js";import{a as ep,c as Cv,d as xv,e as Pv,f as Ko,g as sU,h as tp}from"./chunk-DTZGQQKA.js";import{a as yv}from"./chunk-CQLJRFML.js";import{a as Sv}from"./chunk-KYFLQ7R3.js";import{a as Tv}from"./chunk-VK2UGXX2.js";import{a as wv,b as kv,c as Hv}from"./chunk-O6NBNFQY.js";import{a as ga}from"./chunk-BIXWXEEW.js";import{a as Iv}from"./chunk-O4BJGTI7.js";import{a as Kc,b as $o}from"./chunk-Q433GZ7T.js";import{a as qo,b as Lo}from"./chunk-J6Q2DPRL.js";import{a as vv}from"./chunk-XFXDPVAB.js";import{a as Oc,b as Fc,c as Vc,d as qc,e as Lc,f as $c,g as Vo,m as Ct,n as ki,o as mv,p as hv,q as _v,r as fv,s as bv,t as Ir}from"./chunk-PELXH4TO.js";import{A as pv,B as us,C as ua,a as iv,b as Hr,c as ro,e as ei,f as sv,h as rv,i as ov,j as nv,k as av,l as Ji,m as lv,n as cv,o as dv,p as Sr,s as Fo,t as Cr,u as Xg,v as xr,w as uv,x as gv}from"./chunk-YLFJH4ZN.js";import{a as Pr}from"./chunk-G5WDJTJP.js";import{e as Ts}from"./chunk-NKVA4YGF.js";import{b as _t}from"./chunk-E2XEMZG2.js";import{k as ot,l as xt,n as nt,p as Tr,q as Ze}from"./chunk-IYDZECG4.js";import{$ as Gg,$b as re,$c as Xy,Aa as Ss,Ab as na,Ac as ui,Bb as aa,Bc as ne,Ca as Cs,Cb as la,Cc as wr,Da as Ly,Db as ca,E as Ey,Eb as da,Fa as xs,Fc as Gs,Ga as $y,Gc as so,H as By,Ha as Ky,Hc as Zy,I as zc,Ib as se,Ic as Qy,J as Uy,La as Oe,Lb as Q,M as Wg,Ma as Wy,Mb as Dc,Nb as H,P as Eo,Pa as Gy,Qa as m,Qc as wi,R as Oy,Rb as Nc,Rc as kr,Sa as Mi,Sb as Mc,Sc as Xt,Ta as _r,Tb as Rc,Ub as br,Va as Zg,Vb as yr,Wb as Ec,Xb as ci,Ya as Bo,Yb as Ri,Za as jc,Zb as he,Zc as Uc,_a as oa,_b as A,a as fe,aa as Ac,ab as Is,ac as ie,b as qe,ba as Yg,bc as vr,bd as ev,c as Dy,ca as ds,cc as Bc,da as Fy,db as ve,e as w,eb as fr,fb as Ws,fc as Xe,fd as tv,g as lt,gb as Yy,gc as et,h as ue,ha as Jg,hc as tt,i as Xr,ia as gt,ic as Jy,ja as hr,jb as Ie,jc as Uo,k as eo,kc as rt,la as Ks,lc as vi,ma as Vy,mc as io,n as Ue,na as j,nc as di,o as Tc,ob as Qg,oc as Oo,p as Kg,pb as ge,qa as qy,qb as U,r as Ny,rb as O,rc as D,s as My,sa as G,sc as B,ta as Y,tb as Jt,tc as zt,ub as Zt,vb as Qt,w as Ry,wa as ra,wb as S,x as Te,xa as to,xb as b,y as Pc,yb as f,zb as R}from"./chunk-YYORCSG2.js";var Bv=w(zs=>{"use strict";Object.defineProperty(zs,"__esModule",{value:!0});zs.formatNames=zs.fastFormats=zs.fullFormats=void 0;function Ps(e,i){return{validate:e,compare:i}}zs.fullFormats={date:Ps(Nv,op),time:Ps(sp(!0),np),"date-time":Ps(Av(!0),Rv),"iso-time":Ps(sp(),Mv),"iso-date-time":Ps(Av(),Ev),duration:/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/,uri:cU,"uri-reference":/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,"uri-template":/^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i,url:/^(?:https?|ftp):\/\/(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)(?:\.(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)*(?:\.(?:[a-z\u{00a1}-\u{ffff}]{2,})))(?::\d{2,5})?(?:\/[^\s]*)?$/iu,email:/^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,hostname:/^(?=.{1,253}\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\.?$/i,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)$/,ipv6:/^((([0-9a-f]{1,4}:){7}([0-9a-f]{1,4}|:))|(([0-9a-f]{1,4}:){6}(:[0-9a-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){5}(((:[0-9a-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){4}(((:[0-9a-f]{1,4}){1,3})|((:[0-9a-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){3}(((:[0-9a-f]{1,4}){1,4})|((:[0-9a-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){2}(((:[0-9a-f]{1,4}){1,5})|((:[0-9a-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){1}(((:[0-9a-f]{1,4}){1,6})|((:[0-9a-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9a-f]{1,4}){1,7})|((:[0-9a-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))$/i,regex:_U,uuid:/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,"json-pointer":/^(?:\/(?:[^~/]|~0|~1)*)*$/,"json-pointer-uri-fragment":/^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,"relative-json-pointer":/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/,byte:dU,int32:{type:"number",validate:pU},int64:{type:"number",validate:mU},float:{type:"number",validate:Dv},double:{type:"number",validate:Dv},password:!0,binary:!0};zs.fastFormats=qe(fe({},zs.fullFormats),{date:Ps(/^\d\d\d\d-[0-1]\d-[0-3]\d$/,op),time:Ps(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,np),"date-time":Ps(/^\d\d\d\d-[0-1]\d-[0-3]\dt(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,Rv),"iso-time":Ps(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,Mv),"iso-date-time":Ps(/^\d\d\d\d-[0-1]\d-[0-3]\d[t\s](?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,Ev),uri:/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/)?[^\s]*$/i,"uri-reference":/^(?:(?:[a-z][a-z0-9+\-.]*:)?\/?\/)?(?:[^\\\s#][^\s#]*)?(?:#[^\\\s]*)?$/i,email:/^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i});zs.formatNames=Object.keys(zs.fullFormats);function rU(e){return e%4===0&&(e%100!==0||e%400===0)}var oU=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,nU=[0,31,28,31,30,31,30,31,31,30,31,30,31];function Nv(e){let i=oU.exec(e);if(!i)return!1;let t=+i[1],s=+i[2],r=+i[3];return s>=1&&s<=12&&r>=1&&r<=(s===2&&rU(t)?29:nU[s])}function op(e,i){if(e&&i)return e>i?1:e<i?-1:0}var ip=/^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(z|([+-])(\d\d)(?::?(\d\d))?)?$/i;function sp(e){return function(t){let s=ip.exec(t);if(!s)return!1;let r=+s[1],n=+s[2],l=+s[3],c=s[4],u=s[5]==="-"?-1:1,p=+(s[6]||0),_=+(s[7]||0);if(p>23||_>59||e&&!c)return!1;if(r<=23&&n<=59&&l<60)return!0;let v=n-_*u,C=r-p*u-(v<0?1:0);return(C===23||C===-1)&&(v===59||v===-1)&&l<61}}function np(e,i){if(!(e&&i))return;let t=new Date("2020-01-01T"+e).valueOf(),s=new Date("2020-01-01T"+i).valueOf();if(t&&s)return t-s}function Mv(e,i){if(!(e&&i))return;let t=ip.exec(e),s=ip.exec(i);if(t&&s)return e=t[1]+t[2]+t[3],i=s[1]+s[2]+s[3],e>i?1:e<i?-1:0}var rp=/t|\s/i;function Av(e){let i=sp(e);return function(s){let r=s.split(rp);return r.length===2&&Nv(r[0])&&i(r[1])}}function Rv(e,i){if(!(e&&i))return;let t=new Date(e).valueOf(),s=new Date(i).valueOf();if(t&&s)return t-s}function Ev(e,i){if(!(e&&i))return;let[t,s]=e.split(rp),[r,n]=i.split(rp),l=op(t,r);if(l!==void 0)return l||np(s,n)}var aU=/\/|:/,lU=/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\?(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i;function cU(e){return aU.test(e)&&lU.test(e)}var jv=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/gm;function dU(e){return jv.lastIndex=0,jv.test(e)}var uU=-(2**31),gU=2**31-1;function pU(e){return Number.isInteger(e)&&e<=gU&&e>=uU}function mU(e){return Number.isInteger(e)}function Dv(){return!0}var hU=/[^\\]\\Z/;function _U(e){if(hU.test(e))return!1;try{return new RegExp(e),!0}catch{return!1}}});var ha=w(Ye=>{"use strict";Object.defineProperty(Ye,"__esModule",{value:!0});Ye.regexpCode=Ye.getEsmExportName=Ye.getProperty=Ye.safeStringify=Ye.stringify=Ye.strConcat=Ye.addCodeArg=Ye.str=Ye._=Ye.nil=Ye._Code=Ye.Name=Ye.IDENTIFIER=Ye._CodeOrName=void 0;var pa=class{};Ye._CodeOrName=pa;Ye.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;var oo=class extends pa{constructor(i){if(super(),!Ye.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}}};Ye.Name=oo;var Zi=class extends pa{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,s)=>`${t}${s}`,"")}get names(){var i;return(i=this._names)!==null&&i!==void 0?i:this._names=this._items.reduce((t,s)=>(s instanceof oo&&(t[s.str]=(t[s.str]||0)+1),t),{})}};Ye._Code=Zi;Ye.nil=new Zi("");function Uv(e,...i){let t=[e[0]],s=0;for(;s<i.length;)lp(t,i[s]),t.push(e[++s]);return new Zi(t)}Ye._=Uv;var ap=new Zi("+");function Ov(e,...i){let t=[ma(e[0])],s=0;for(;s<i.length;)t.push(ap),lp(t,i[s]),t.push(ap,ma(e[++s]));return fU(t),new Zi(t)}Ye.str=Ov;function lp(e,i){i instanceof Zi?e.push(...i._items):i instanceof oo?e.push(i):e.push(vU(i))}Ye.addCodeArg=lp;function fU(e){let i=1;for(;i<e.length-1;){if(e[i]===ap){let t=bU(e[i-1],e[i+1]);if(t!==void 0){e.splice(i-1,3,t);continue}e[i++]="+"}i++}}function bU(e,i){if(i==='""')return e;if(e==='""')return i;if(typeof e=="string")return i instanceof oo||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 oo))return`"${e}${i.slice(1)}`}function yU(e,i){return i.emptyStr()?e:e.emptyStr()?i:Ov`${e}${i}`}Ye.strConcat=yU;function vU(e){return typeof e=="number"||typeof e=="boolean"||e===null?e:ma(Array.isArray(e)?e.join(","):e)}function wU(e){return new Zi(ma(e))}Ye.stringify=wU;function ma(e){return JSON.stringify(e).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}Ye.safeStringify=ma;function kU(e){return typeof e=="string"&&Ye.IDENTIFIER.test(e)?new Zi(`.${e}`):Uv`[${e}]`}Ye.getProperty=kU;function HU(e){if(typeof e=="string"&&Ye.IDENTIFIER.test(e))return new Zi(`${e}`);throw new Error(`CodeGen: invalid export name: ${e}, use explicit $id name mapping`)}Ye.getEsmExportName=HU;function SU(e){return new Zi(e.toString())}Ye.regexpCode=SU});var up=w(Si=>{"use strict";Object.defineProperty(Si,"__esModule",{value:!0});Si.ValueScope=Si.ValueScopeName=Si.Scope=Si.varKinds=Si.UsedValueState=void 0;var Hi=ha(),cp=class extends Error{constructor(i){super(`CodeGen: "code" for ${i} not defined`),this.value=i.value}},Wc=(function(e){return e[e.Started=0]="Started",e[e.Completed=1]="Completed",e})(Wc||(Si.UsedValueState=Wc={}));Si.varKinds={const:new Hi.Name("const"),let:new Hi.Name("let"),var:new Hi.Name("var")};var Gc=class{constructor({prefixes:i,parent:t}={}){this._names={},this._prefixes=i,this._parent=t}toName(i){return i instanceof Hi.Name?i:this.name(i)}name(i){return new Hi.Name(this._newName(i))}_newName(i){let t=this._names[i]||this._nameGroup(i);return`${i}${t.index++}`}_nameGroup(i){var t,s;if(!((s=(t=this._parent)===null||t===void 0?void 0:t._prefixes)===null||s===void 0)&&s.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}}};Si.Scope=Gc;var Yc=class extends Hi.Name{constructor(i,t){super(t),this.prefix=i}setValue(i,{property:t,itemIndex:s}){this.value=i,this.scopePath=(0,Hi._)`.${new Hi.Name(t)}[${s}]`}};Si.ValueScopeName=Yc;var CU=(0,Hi._)`\n`,dp=class extends Gc{constructor(i){super(i),this._values={},this._scope=i.scope,this.opts=qe(fe({},i),{_n:i.lines?CU:Hi.nil})}get(){return this._scope}name(i){return new Yc(i,this._newName(i))}value(i,t){var s;if(t.ref===void 0)throw new Error("CodeGen: ref must be passed in value");let r=this.toName(i),{prefix:n}=r,l=(s=t.key)!==null&&s!==void 0?s:t.ref,c=this._values[n];if(c){let _=c.get(l);if(_)return _}else c=this._values[n]=new Map;c.set(l,r);let u=this._scope[n]||(this._scope[n]=[]),p=u.length;return u[p]=t.ref,r.setValue(t,{property:n,itemIndex:p}),r}getValue(i,t){let s=this._values[i];if(s)return s.get(t)}scopeRefs(i,t=this._values){return this._reduceValues(t,s=>{if(s.scopePath===void 0)throw new Error(`CodeGen: name "${s}" has no value`);return(0,Hi._)`${i}${s.scopePath}`})}scopeCode(i=this._values,t,s){return this._reduceValues(i,r=>{if(r.value===void 0)throw new Error(`CodeGen: name "${r}" has no value`);return r.value.code},t,s)}_reduceValues(i,t,s={},r){let n=Hi.nil;for(let l in i){let c=i[l];if(!c)continue;let u=s[l]=s[l]||new Map;c.forEach(p=>{if(u.has(p))return;u.set(p,Wc.Started);let _=t(p);if(_){let v=this.opts.es5?Si.varKinds.var:Si.varKinds.const;n=(0,Hi._)`${n}${v} ${p} = ${_};${this.opts._n}`}else if(_=r?.(p))n=(0,Hi._)`${n}${_}${this.opts._n}`;else throw new cp(p);u.set(p,Wc.Completed)})}return n}};Si.ValueScope=dp});var we=w(Be=>{"use strict";Object.defineProperty(Be,"__esModule",{value:!0});Be.or=Be.and=Be.not=Be.CodeGen=Be.operators=Be.varKinds=Be.ValueScopeName=Be.ValueScope=Be.Scope=Be.Name=Be.regexpCode=Be.stringify=Be.getProperty=Be.nil=Be.strConcat=Be.str=Be._=void 0;var We=ha(),gs=up(),zr=ha();Object.defineProperty(Be,"_",{enumerable:!0,get:function(){return zr._}});Object.defineProperty(Be,"str",{enumerable:!0,get:function(){return zr.str}});Object.defineProperty(Be,"strConcat",{enumerable:!0,get:function(){return zr.strConcat}});Object.defineProperty(Be,"nil",{enumerable:!0,get:function(){return zr.nil}});Object.defineProperty(Be,"getProperty",{enumerable:!0,get:function(){return zr.getProperty}});Object.defineProperty(Be,"stringify",{enumerable:!0,get:function(){return zr.stringify}});Object.defineProperty(Be,"regexpCode",{enumerable:!0,get:function(){return zr.regexpCode}});Object.defineProperty(Be,"Name",{enumerable:!0,get:function(){return zr.Name}});var ed=up();Object.defineProperty(Be,"Scope",{enumerable:!0,get:function(){return ed.Scope}});Object.defineProperty(Be,"ValueScope",{enumerable:!0,get:function(){return ed.ValueScope}});Object.defineProperty(Be,"ValueScopeName",{enumerable:!0,get:function(){return ed.ValueScopeName}});Object.defineProperty(Be,"varKinds",{enumerable:!0,get:function(){return ed.varKinds}});Be.operators={GT:new We._Code(">"),GTE:new We._Code(">="),LT:new We._Code("<"),LTE:new We._Code("<="),EQ:new We._Code("==="),NEQ:new We._Code("!=="),NOT:new We._Code("!"),OR:new We._Code("||"),AND:new We._Code("&&"),ADD:new We._Code("+")};var Ys=class{optimizeNodes(){return this}optimizeNames(i,t){return this}},gp=class extends Ys{constructor(i,t,s){super(),this.varKind=i,this.name=t,this.rhs=s}render({es5:i,_n:t}){let s=i?gs.varKinds.var:this.varKind,r=this.rhs===void 0?"":` = ${this.rhs}`;return`${s} ${this.name}${r};`+t}optimizeNames(i,t){if(i[this.name.str])return this.rhs&&(this.rhs=Go(this.rhs,i,t)),this}get names(){return this.rhs instanceof We._CodeOrName?this.rhs.names:{}}},Zc=class extends Ys{constructor(i,t,s){super(),this.lhs=i,this.rhs=t,this.sideEffects=s}render({_n:i}){return`${this.lhs} = ${this.rhs};`+i}optimizeNames(i,t){if(!(this.lhs instanceof We.Name&&!i[this.lhs.str]&&!this.sideEffects))return this.rhs=Go(this.rhs,i,t),this}get names(){let i=this.lhs instanceof We.Name?{}:fe({},this.lhs.names);return Xc(i,this.rhs)}},pp=class extends Zc{constructor(i,t,s,r){super(i,s,r),this.op=t}render({_n:i}){return`${this.lhs} ${this.op}= ${this.rhs};`+i}},mp=class extends Ys{constructor(i){super(),this.label=i,this.names={}}render({_n:i}){return`${this.label}:`+i}},hp=class extends Ys{constructor(i){super(),this.label=i,this.names={}}render({_n:i}){return`break${this.label?` ${this.label}`:""};`+i}},_p=class extends Ys{constructor(i){super(),this.error=i}render({_n:i}){return`throw ${this.error};`+i}get names(){return this.error.names}},fp=class extends Ys{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=Go(this.code,i,t),this}get names(){return this.code instanceof We._CodeOrName?this.code.names:{}}},_a=class extends Ys{constructor(i=[]){super(),this.nodes=i}render(i){return this.nodes.reduce((t,s)=>t+s.render(i),"")}optimizeNodes(){let{nodes:i}=this,t=i.length;for(;t--;){let s=i[t].optimizeNodes();Array.isArray(s)?i.splice(t,1,...s):s?i[t]=s:i.splice(t,1)}return i.length>0?this:void 0}optimizeNames(i,t){let{nodes:s}=this,r=s.length;for(;r--;){let n=s[r];n.optimizeNames(i,t)||(xU(i,n.names),s.splice(r,1))}return s.length>0?this:void 0}get names(){return this.nodes.reduce((i,t)=>no(i,t.names),{})}},Js=class extends _a{render(i){return"{"+i._n+super.render(i)+"}"+i._n}},bp=class extends _a{},yp=(()=>{class e extends Js{}return e.kind="else",e})(),Jc=(()=>{class e extends Js{constructor(t,s){super(s),this.condition=t}render(t){let s=`if(${this.condition})`+super.render(t);return this.else&&(s+="else "+this.else.render(t)),s}optimizeNodes(){super.optimizeNodes();let t=this.condition;if(t===!0)return this.nodes;let s=this.else;if(s){let r=s.optimizeNodes();s=this.else=Array.isArray(r)?new yp(r):r}if(s)return t===!1?s instanceof e?s:s.nodes:this.nodes.length?this:new e($v(t),s instanceof e?[s]:s.nodes);if(!(t===!1||!this.nodes.length))return this}optimizeNames(t,s){var r;if(this.else=(r=this.else)===null||r===void 0?void 0:r.optimizeNames(t,s),!!(super.optimizeNames(t,s)||this.else))return this.condition=Go(this.condition,t,s),this}get names(){let t=super.names;return Xc(t,this.condition),this.else&&no(t,this.else.names),t}}return e.kind="if",e})(),td=(()=>{class e extends Js{}return e.kind="for",e})(),vp=class extends td{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=Go(this.iteration,i,t),this}get names(){return no(super.names,this.iteration.names)}},wp=class extends td{constructor(i,t,s,r){super(),this.varKind=i,this.name=t,this.from=s,this.to=r}render(i){let t=i.es5?gs.varKinds.var:this.varKind,{name:s,from:r,to:n}=this;return`for(${t} ${s}=${r}; ${s}<${n}; ${s}++)`+super.render(i)}get names(){let i=Xc(super.names,this.from);return Xc(i,this.to)}},Qc=class extends td{constructor(i,t,s,r){super(),this.loop=i,this.varKind=t,this.name=s,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=Go(this.iterable,i,t),this}get names(){return no(super.names,this.iterable.names)}},Fv=(()=>{class e extends Js{constructor(t,s,r){super(),this.name=t,this.args=s,this.async=r}render(t){return`${this.async?"async ":""}function ${this.name}(${this.args})`+super.render(t)}}return e.kind="func",e})(),Vv=(()=>{class e extends _a{render(t){return"return "+super.render(t)}}return e.kind="return",e})(),kp=class extends Js{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 s,r;return super.optimizeNames(i,t),(s=this.catch)===null||s===void 0||s.optimizeNames(i,t),(r=this.finally)===null||r===void 0||r.optimizeNames(i,t),this}get names(){let i=super.names;return this.catch&&no(i,this.catch.names),this.finally&&no(i,this.finally.names),i}},qv=(()=>{class e extends Js{constructor(t){super(),this.error=t}render(t){return`catch(${this.error})`+super.render(t)}}return e.kind="catch",e})(),Lv=(()=>{class e extends Js{render(t){return"finally"+super.render(t)}}return e.kind="finally",e})(),Hp=class{constructor(i,t={}){this._values={},this._blockStarts=[],this._constants={},this.opts=qe(fe({},t),{_n:t.lines?`
|
|
1
|
+
import{a as zv}from"./chunk-2DXY4SSZ.js";import{a as ep,c as Cv,d as xv,e as Pv,f as Ko,g as sU,h as tp}from"./chunk-44IUMKRC.js";import{a as yv}from"./chunk-CQLJRFML.js";import{a as Sv}from"./chunk-KYFLQ7R3.js";import{a as Tv}from"./chunk-QZT56NRO.js";import{a as wv,b as kv,c as Hv}from"./chunk-O6NBNFQY.js";import{a as ga}from"./chunk-BIXWXEEW.js";import{a as Iv}from"./chunk-O4BJGTI7.js";import{a as Kc,b as $o}from"./chunk-Q433GZ7T.js";import{a as qo,b as Lo}from"./chunk-J6Q2DPRL.js";import{a as vv}from"./chunk-BZVVKWVW.js";import{a as Oc,b as Fc,c as Vc,d as qc,e as Lc,f as $c,g as Vo,m as Ct,n as ki,o as mv,p as hv,q as _v,r as fv,s as bv,t as Ir}from"./chunk-PELXH4TO.js";import{A as pv,B as us,C as ua,a as iv,b as Hr,c as ro,e as ei,f as sv,h as rv,i as ov,j as nv,k as av,l as Ji,m as lv,n as cv,o as dv,p as Sr,s as Fo,t as Cr,u as Xg,v as xr,w as uv,x as gv}from"./chunk-YLFJH4ZN.js";import{a as Pr}from"./chunk-OJML56DH.js";import{e as Ts}from"./chunk-NKVA4YGF.js";import{b as _t}from"./chunk-CMUJLMKB.js";import{k as ot,l as xt,n as nt,p as Tr,q as Ze}from"./chunk-S6PCNWMK.js";import{$ as Gg,$b as re,$c as Xy,Aa as Ss,Ab as na,Ac as ui,Bb as aa,Bc as ne,Ca as Cs,Cb as la,Cc as wr,Da as Ly,Db as ca,E as Ey,Eb as da,Fa as xs,Fc as Gs,Ga as $y,Gc as so,H as By,Ha as Ky,Hc as Zy,I as zc,Ib as se,Ic as Qy,J as Uy,La as Oe,Lb as Q,M as Wg,Ma as Wy,Mb as Dc,Nb as H,P as Eo,Pa as Gy,Qa as m,Qc as wi,R as Oy,Rb as Nc,Rc as kr,Sa as Mi,Sb as Mc,Sc as Xt,Ta as _r,Tb as Rc,Ub as br,Va as Zg,Vb as yr,Wb as Ec,Xb as ci,Ya as Bo,Yb as Ri,Za as jc,Zb as he,Zc as Uc,_a as oa,_b as A,a as fe,aa as Ac,ab as Is,ac as ie,b as qe,ba as Yg,bc as vr,bd as ev,c as Dy,ca as ds,cc as Bc,da as Fy,db as ve,e as w,eb as fr,fb as Ws,fc as Xe,fd as tv,g as lt,gb as Yy,gc as et,h as ue,ha as Jg,hc as tt,i as Xr,ia as gt,ic as Jy,ja as hr,jb as Ie,jc as Uo,k as eo,kc as rt,la as Ks,lc as vi,ma as Vy,mc as io,n as Ue,na as j,nc as di,o as Tc,ob as Qg,oc as Oo,p as Kg,pb as ge,qa as qy,qb as U,r as Ny,rb as O,rc as D,s as My,sa as G,sc as B,ta as Y,tb as Jt,tc as zt,ub as Zt,vb as Qt,w as Ry,wa as ra,wb as S,x as Te,xa as to,xb as b,y as Pc,yb as f,zb as R}from"./chunk-YYORCSG2.js";var Bv=w(zs=>{"use strict";Object.defineProperty(zs,"__esModule",{value:!0});zs.formatNames=zs.fastFormats=zs.fullFormats=void 0;function Ps(e,i){return{validate:e,compare:i}}zs.fullFormats={date:Ps(Nv,op),time:Ps(sp(!0),np),"date-time":Ps(Av(!0),Rv),"iso-time":Ps(sp(),Mv),"iso-date-time":Ps(Av(),Ev),duration:/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/,uri:cU,"uri-reference":/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,"uri-template":/^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i,url:/^(?:https?|ftp):\/\/(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)(?:\.(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)*(?:\.(?:[a-z\u{00a1}-\u{ffff}]{2,})))(?::\d{2,5})?(?:\/[^\s]*)?$/iu,email:/^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,hostname:/^(?=.{1,253}\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\.?$/i,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)$/,ipv6:/^((([0-9a-f]{1,4}:){7}([0-9a-f]{1,4}|:))|(([0-9a-f]{1,4}:){6}(:[0-9a-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){5}(((:[0-9a-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){4}(((:[0-9a-f]{1,4}){1,3})|((:[0-9a-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){3}(((:[0-9a-f]{1,4}){1,4})|((:[0-9a-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){2}(((:[0-9a-f]{1,4}){1,5})|((:[0-9a-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){1}(((:[0-9a-f]{1,4}){1,6})|((:[0-9a-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9a-f]{1,4}){1,7})|((:[0-9a-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))$/i,regex:_U,uuid:/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,"json-pointer":/^(?:\/(?:[^~/]|~0|~1)*)*$/,"json-pointer-uri-fragment":/^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,"relative-json-pointer":/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/,byte:dU,int32:{type:"number",validate:pU},int64:{type:"number",validate:mU},float:{type:"number",validate:Dv},double:{type:"number",validate:Dv},password:!0,binary:!0};zs.fastFormats=qe(fe({},zs.fullFormats),{date:Ps(/^\d\d\d\d-[0-1]\d-[0-3]\d$/,op),time:Ps(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,np),"date-time":Ps(/^\d\d\d\d-[0-1]\d-[0-3]\dt(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,Rv),"iso-time":Ps(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,Mv),"iso-date-time":Ps(/^\d\d\d\d-[0-1]\d-[0-3]\d[t\s](?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,Ev),uri:/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/)?[^\s]*$/i,"uri-reference":/^(?:(?:[a-z][a-z0-9+\-.]*:)?\/?\/)?(?:[^\\\s#][^\s#]*)?(?:#[^\\\s]*)?$/i,email:/^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i});zs.formatNames=Object.keys(zs.fullFormats);function rU(e){return e%4===0&&(e%100!==0||e%400===0)}var oU=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,nU=[0,31,28,31,30,31,30,31,31,30,31,30,31];function Nv(e){let i=oU.exec(e);if(!i)return!1;let t=+i[1],s=+i[2],r=+i[3];return s>=1&&s<=12&&r>=1&&r<=(s===2&&rU(t)?29:nU[s])}function op(e,i){if(e&&i)return e>i?1:e<i?-1:0}var ip=/^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(z|([+-])(\d\d)(?::?(\d\d))?)?$/i;function sp(e){return function(t){let s=ip.exec(t);if(!s)return!1;let r=+s[1],n=+s[2],l=+s[3],c=s[4],u=s[5]==="-"?-1:1,p=+(s[6]||0),_=+(s[7]||0);if(p>23||_>59||e&&!c)return!1;if(r<=23&&n<=59&&l<60)return!0;let v=n-_*u,C=r-p*u-(v<0?1:0);return(C===23||C===-1)&&(v===59||v===-1)&&l<61}}function np(e,i){if(!(e&&i))return;let t=new Date("2020-01-01T"+e).valueOf(),s=new Date("2020-01-01T"+i).valueOf();if(t&&s)return t-s}function Mv(e,i){if(!(e&&i))return;let t=ip.exec(e),s=ip.exec(i);if(t&&s)return e=t[1]+t[2]+t[3],i=s[1]+s[2]+s[3],e>i?1:e<i?-1:0}var rp=/t|\s/i;function Av(e){let i=sp(e);return function(s){let r=s.split(rp);return r.length===2&&Nv(r[0])&&i(r[1])}}function Rv(e,i){if(!(e&&i))return;let t=new Date(e).valueOf(),s=new Date(i).valueOf();if(t&&s)return t-s}function Ev(e,i){if(!(e&&i))return;let[t,s]=e.split(rp),[r,n]=i.split(rp),l=op(t,r);if(l!==void 0)return l||np(s,n)}var aU=/\/|:/,lU=/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\?(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i;function cU(e){return aU.test(e)&&lU.test(e)}var jv=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/gm;function dU(e){return jv.lastIndex=0,jv.test(e)}var uU=-(2**31),gU=2**31-1;function pU(e){return Number.isInteger(e)&&e<=gU&&e>=uU}function mU(e){return Number.isInteger(e)}function Dv(){return!0}var hU=/[^\\]\\Z/;function _U(e){if(hU.test(e))return!1;try{return new RegExp(e),!0}catch{return!1}}});var ha=w(Ye=>{"use strict";Object.defineProperty(Ye,"__esModule",{value:!0});Ye.regexpCode=Ye.getEsmExportName=Ye.getProperty=Ye.safeStringify=Ye.stringify=Ye.strConcat=Ye.addCodeArg=Ye.str=Ye._=Ye.nil=Ye._Code=Ye.Name=Ye.IDENTIFIER=Ye._CodeOrName=void 0;var pa=class{};Ye._CodeOrName=pa;Ye.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;var oo=class extends pa{constructor(i){if(super(),!Ye.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}}};Ye.Name=oo;var Zi=class extends pa{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,s)=>`${t}${s}`,"")}get names(){var i;return(i=this._names)!==null&&i!==void 0?i:this._names=this._items.reduce((t,s)=>(s instanceof oo&&(t[s.str]=(t[s.str]||0)+1),t),{})}};Ye._Code=Zi;Ye.nil=new Zi("");function Uv(e,...i){let t=[e[0]],s=0;for(;s<i.length;)lp(t,i[s]),t.push(e[++s]);return new Zi(t)}Ye._=Uv;var ap=new Zi("+");function Ov(e,...i){let t=[ma(e[0])],s=0;for(;s<i.length;)t.push(ap),lp(t,i[s]),t.push(ap,ma(e[++s]));return fU(t),new Zi(t)}Ye.str=Ov;function lp(e,i){i instanceof Zi?e.push(...i._items):i instanceof oo?e.push(i):e.push(vU(i))}Ye.addCodeArg=lp;function fU(e){let i=1;for(;i<e.length-1;){if(e[i]===ap){let t=bU(e[i-1],e[i+1]);if(t!==void 0){e.splice(i-1,3,t);continue}e[i++]="+"}i++}}function bU(e,i){if(i==='""')return e;if(e==='""')return i;if(typeof e=="string")return i instanceof oo||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 oo))return`"${e}${i.slice(1)}`}function yU(e,i){return i.emptyStr()?e:e.emptyStr()?i:Ov`${e}${i}`}Ye.strConcat=yU;function vU(e){return typeof e=="number"||typeof e=="boolean"||e===null?e:ma(Array.isArray(e)?e.join(","):e)}function wU(e){return new Zi(ma(e))}Ye.stringify=wU;function ma(e){return JSON.stringify(e).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}Ye.safeStringify=ma;function kU(e){return typeof e=="string"&&Ye.IDENTIFIER.test(e)?new Zi(`.${e}`):Uv`[${e}]`}Ye.getProperty=kU;function HU(e){if(typeof e=="string"&&Ye.IDENTIFIER.test(e))return new Zi(`${e}`);throw new Error(`CodeGen: invalid export name: ${e}, use explicit $id name mapping`)}Ye.getEsmExportName=HU;function SU(e){return new Zi(e.toString())}Ye.regexpCode=SU});var up=w(Si=>{"use strict";Object.defineProperty(Si,"__esModule",{value:!0});Si.ValueScope=Si.ValueScopeName=Si.Scope=Si.varKinds=Si.UsedValueState=void 0;var Hi=ha(),cp=class extends Error{constructor(i){super(`CodeGen: "code" for ${i} not defined`),this.value=i.value}},Wc=(function(e){return e[e.Started=0]="Started",e[e.Completed=1]="Completed",e})(Wc||(Si.UsedValueState=Wc={}));Si.varKinds={const:new Hi.Name("const"),let:new Hi.Name("let"),var:new Hi.Name("var")};var Gc=class{constructor({prefixes:i,parent:t}={}){this._names={},this._prefixes=i,this._parent=t}toName(i){return i instanceof Hi.Name?i:this.name(i)}name(i){return new Hi.Name(this._newName(i))}_newName(i){let t=this._names[i]||this._nameGroup(i);return`${i}${t.index++}`}_nameGroup(i){var t,s;if(!((s=(t=this._parent)===null||t===void 0?void 0:t._prefixes)===null||s===void 0)&&s.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}}};Si.Scope=Gc;var Yc=class extends Hi.Name{constructor(i,t){super(t),this.prefix=i}setValue(i,{property:t,itemIndex:s}){this.value=i,this.scopePath=(0,Hi._)`.${new Hi.Name(t)}[${s}]`}};Si.ValueScopeName=Yc;var CU=(0,Hi._)`\n`,dp=class extends Gc{constructor(i){super(i),this._values={},this._scope=i.scope,this.opts=qe(fe({},i),{_n:i.lines?CU:Hi.nil})}get(){return this._scope}name(i){return new Yc(i,this._newName(i))}value(i,t){var s;if(t.ref===void 0)throw new Error("CodeGen: ref must be passed in value");let r=this.toName(i),{prefix:n}=r,l=(s=t.key)!==null&&s!==void 0?s:t.ref,c=this._values[n];if(c){let _=c.get(l);if(_)return _}else c=this._values[n]=new Map;c.set(l,r);let u=this._scope[n]||(this._scope[n]=[]),p=u.length;return u[p]=t.ref,r.setValue(t,{property:n,itemIndex:p}),r}getValue(i,t){let s=this._values[i];if(s)return s.get(t)}scopeRefs(i,t=this._values){return this._reduceValues(t,s=>{if(s.scopePath===void 0)throw new Error(`CodeGen: name "${s}" has no value`);return(0,Hi._)`${i}${s.scopePath}`})}scopeCode(i=this._values,t,s){return this._reduceValues(i,r=>{if(r.value===void 0)throw new Error(`CodeGen: name "${r}" has no value`);return r.value.code},t,s)}_reduceValues(i,t,s={},r){let n=Hi.nil;for(let l in i){let c=i[l];if(!c)continue;let u=s[l]=s[l]||new Map;c.forEach(p=>{if(u.has(p))return;u.set(p,Wc.Started);let _=t(p);if(_){let v=this.opts.es5?Si.varKinds.var:Si.varKinds.const;n=(0,Hi._)`${n}${v} ${p} = ${_};${this.opts._n}`}else if(_=r?.(p))n=(0,Hi._)`${n}${_}${this.opts._n}`;else throw new cp(p);u.set(p,Wc.Completed)})}return n}};Si.ValueScope=dp});var we=w(Be=>{"use strict";Object.defineProperty(Be,"__esModule",{value:!0});Be.or=Be.and=Be.not=Be.CodeGen=Be.operators=Be.varKinds=Be.ValueScopeName=Be.ValueScope=Be.Scope=Be.Name=Be.regexpCode=Be.stringify=Be.getProperty=Be.nil=Be.strConcat=Be.str=Be._=void 0;var We=ha(),gs=up(),zr=ha();Object.defineProperty(Be,"_",{enumerable:!0,get:function(){return zr._}});Object.defineProperty(Be,"str",{enumerable:!0,get:function(){return zr.str}});Object.defineProperty(Be,"strConcat",{enumerable:!0,get:function(){return zr.strConcat}});Object.defineProperty(Be,"nil",{enumerable:!0,get:function(){return zr.nil}});Object.defineProperty(Be,"getProperty",{enumerable:!0,get:function(){return zr.getProperty}});Object.defineProperty(Be,"stringify",{enumerable:!0,get:function(){return zr.stringify}});Object.defineProperty(Be,"regexpCode",{enumerable:!0,get:function(){return zr.regexpCode}});Object.defineProperty(Be,"Name",{enumerable:!0,get:function(){return zr.Name}});var ed=up();Object.defineProperty(Be,"Scope",{enumerable:!0,get:function(){return ed.Scope}});Object.defineProperty(Be,"ValueScope",{enumerable:!0,get:function(){return ed.ValueScope}});Object.defineProperty(Be,"ValueScopeName",{enumerable:!0,get:function(){return ed.ValueScopeName}});Object.defineProperty(Be,"varKinds",{enumerable:!0,get:function(){return ed.varKinds}});Be.operators={GT:new We._Code(">"),GTE:new We._Code(">="),LT:new We._Code("<"),LTE:new We._Code("<="),EQ:new We._Code("==="),NEQ:new We._Code("!=="),NOT:new We._Code("!"),OR:new We._Code("||"),AND:new We._Code("&&"),ADD:new We._Code("+")};var Ys=class{optimizeNodes(){return this}optimizeNames(i,t){return this}},gp=class extends Ys{constructor(i,t,s){super(),this.varKind=i,this.name=t,this.rhs=s}render({es5:i,_n:t}){let s=i?gs.varKinds.var:this.varKind,r=this.rhs===void 0?"":` = ${this.rhs}`;return`${s} ${this.name}${r};`+t}optimizeNames(i,t){if(i[this.name.str])return this.rhs&&(this.rhs=Go(this.rhs,i,t)),this}get names(){return this.rhs instanceof We._CodeOrName?this.rhs.names:{}}},Zc=class extends Ys{constructor(i,t,s){super(),this.lhs=i,this.rhs=t,this.sideEffects=s}render({_n:i}){return`${this.lhs} = ${this.rhs};`+i}optimizeNames(i,t){if(!(this.lhs instanceof We.Name&&!i[this.lhs.str]&&!this.sideEffects))return this.rhs=Go(this.rhs,i,t),this}get names(){let i=this.lhs instanceof We.Name?{}:fe({},this.lhs.names);return Xc(i,this.rhs)}},pp=class extends Zc{constructor(i,t,s,r){super(i,s,r),this.op=t}render({_n:i}){return`${this.lhs} ${this.op}= ${this.rhs};`+i}},mp=class extends Ys{constructor(i){super(),this.label=i,this.names={}}render({_n:i}){return`${this.label}:`+i}},hp=class extends Ys{constructor(i){super(),this.label=i,this.names={}}render({_n:i}){return`break${this.label?` ${this.label}`:""};`+i}},_p=class extends Ys{constructor(i){super(),this.error=i}render({_n:i}){return`throw ${this.error};`+i}get names(){return this.error.names}},fp=class extends Ys{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=Go(this.code,i,t),this}get names(){return this.code instanceof We._CodeOrName?this.code.names:{}}},_a=class extends Ys{constructor(i=[]){super(),this.nodes=i}render(i){return this.nodes.reduce((t,s)=>t+s.render(i),"")}optimizeNodes(){let{nodes:i}=this,t=i.length;for(;t--;){let s=i[t].optimizeNodes();Array.isArray(s)?i.splice(t,1,...s):s?i[t]=s:i.splice(t,1)}return i.length>0?this:void 0}optimizeNames(i,t){let{nodes:s}=this,r=s.length;for(;r--;){let n=s[r];n.optimizeNames(i,t)||(xU(i,n.names),s.splice(r,1))}return s.length>0?this:void 0}get names(){return this.nodes.reduce((i,t)=>no(i,t.names),{})}},Js=class extends _a{render(i){return"{"+i._n+super.render(i)+"}"+i._n}},bp=class extends _a{},yp=(()=>{class e extends Js{}return e.kind="else",e})(),Jc=(()=>{class e extends Js{constructor(t,s){super(s),this.condition=t}render(t){let s=`if(${this.condition})`+super.render(t);return this.else&&(s+="else "+this.else.render(t)),s}optimizeNodes(){super.optimizeNodes();let t=this.condition;if(t===!0)return this.nodes;let s=this.else;if(s){let r=s.optimizeNodes();s=this.else=Array.isArray(r)?new yp(r):r}if(s)return t===!1?s instanceof e?s:s.nodes:this.nodes.length?this:new e($v(t),s instanceof e?[s]:s.nodes);if(!(t===!1||!this.nodes.length))return this}optimizeNames(t,s){var r;if(this.else=(r=this.else)===null||r===void 0?void 0:r.optimizeNames(t,s),!!(super.optimizeNames(t,s)||this.else))return this.condition=Go(this.condition,t,s),this}get names(){let t=super.names;return Xc(t,this.condition),this.else&&no(t,this.else.names),t}}return e.kind="if",e})(),td=(()=>{class e extends Js{}return e.kind="for",e})(),vp=class extends td{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=Go(this.iteration,i,t),this}get names(){return no(super.names,this.iteration.names)}},wp=class extends td{constructor(i,t,s,r){super(),this.varKind=i,this.name=t,this.from=s,this.to=r}render(i){let t=i.es5?gs.varKinds.var:this.varKind,{name:s,from:r,to:n}=this;return`for(${t} ${s}=${r}; ${s}<${n}; ${s}++)`+super.render(i)}get names(){let i=Xc(super.names,this.from);return Xc(i,this.to)}},Qc=class extends td{constructor(i,t,s,r){super(),this.loop=i,this.varKind=t,this.name=s,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=Go(this.iterable,i,t),this}get names(){return no(super.names,this.iterable.names)}},Fv=(()=>{class e extends Js{constructor(t,s,r){super(),this.name=t,this.args=s,this.async=r}render(t){return`${this.async?"async ":""}function ${this.name}(${this.args})`+super.render(t)}}return e.kind="func",e})(),Vv=(()=>{class e extends _a{render(t){return"return "+super.render(t)}}return e.kind="return",e})(),kp=class extends Js{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 s,r;return super.optimizeNames(i,t),(s=this.catch)===null||s===void 0||s.optimizeNames(i,t),(r=this.finally)===null||r===void 0||r.optimizeNames(i,t),this}get names(){let i=super.names;return this.catch&&no(i,this.catch.names),this.finally&&no(i,this.finally.names),i}},qv=(()=>{class e extends Js{constructor(t){super(),this.error=t}render(t){return`catch(${this.error})`+super.render(t)}}return e.kind="catch",e})(),Lv=(()=>{class e extends Js{render(t){return"finally"+super.render(t)}}return e.kind="finally",e})(),Hp=class{constructor(i,t={}){this._values={},this._blockStarts=[],this._constants={},this.opts=qe(fe({},t),{_n:t.lines?`
|
|
2
2
|
`:""}),this._extScope=i,this._scope=new gs.Scope({parent:i}),this._nodes=[new bp]}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 s=this._extScope.value(i,t);return(this._values[s.prefix]||(this._values[s.prefix]=new Set)).add(s),s}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,s,r){let n=this._scope.toName(t);return s!==void 0&&r&&(this._constants[n.str]=s),this._leafNode(new gp(i,n,s)),n}const(i,t,s){return this._def(gs.varKinds.const,i,t,s)}let(i,t,s){return this._def(gs.varKinds.let,i,t,s)}var(i,t,s){return this._def(gs.varKinds.var,i,t,s)}assign(i,t,s){return this._leafNode(new Zc(i,t,s))}add(i,t){return this._leafNode(new pp(i,Be.operators.ADD,t))}code(i){return typeof i=="function"?i():i!==We.nil&&this._leafNode(new fp(i)),this}object(...i){let t=["{"];for(let[s,r]of i)t.length>1&&t.push(","),t.push(s),(s!==r||this.opts.es5)&&(t.push(":"),(0,We.addCodeArg)(t,r));return t.push("}"),new We._Code(t)}if(i,t,s){if(this._blockNode(new Jc(i)),t&&s)this.code(t).else().code(s).endIf();else if(t)this.code(t).endIf();else if(s)throw new Error('CodeGen: "else" body without "then" body');return this}elseIf(i){return this._elseNode(new Jc(i))}else(){return this._elseNode(new yp)}endIf(){return this._endBlockNode(Jc,yp)}_for(i,t){return this._blockNode(i),t&&this.code(t).endFor(),this}for(i,t){return this._for(new vp(i),t)}forRange(i,t,s,r,n=this.opts.es5?gs.varKinds.var:gs.varKinds.let){let l=this._scope.toName(i);return this._for(new wp(n,l,t,s),()=>r(l))}forOf(i,t,s,r=gs.varKinds.const){let n=this._scope.toName(i);if(this.opts.es5){let l=t instanceof We.Name?t:this.var("_arr",t);return this.forRange("_i",0,(0,We._)`${l}.length`,c=>{this.var(n,(0,We._)`${l}[${c}]`),s(n)})}return this._for(new Qc("of",r,n,t),()=>s(n))}forIn(i,t,s,r=this.opts.es5?gs.varKinds.var:gs.varKinds.const){if(this.opts.ownProperties)return this.forOf(i,(0,We._)`Object.keys(${t})`,s);let n=this._scope.toName(i);return this._for(new Qc("in",r,n,t),()=>s(n))}endFor(){return this._endBlockNode(td)}label(i){return this._leafNode(new mp(i))}break(i){return this._leafNode(new hp(i))}return(i){let t=new Vv;if(this._blockNode(t),this.code(i),t.nodes.length!==1)throw new Error('CodeGen: "return" should have one node');return this._endBlockNode(Vv)}try(i,t,s){if(!t&&!s)throw new Error('CodeGen: "try" without "catch" and "finally"');let r=new kp;if(this._blockNode(r),this.code(i),t){let n=this.name("e");this._currNode=r.catch=new qv(n),t(n)}return s&&(this._currNode=r.finally=new Lv,this.code(s)),this._endBlockNode(qv,Lv)}throw(i){return this._leafNode(new _p(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 s=this._nodes.length-t;if(s<0||i!==void 0&&s!==i)throw new Error(`CodeGen: wrong number of nodes: ${s} vs ${i} expected`);return this._nodes.length=t,this}func(i,t=We.nil,s,r){return this._blockNode(new Fv(i,t,s)),r&&this.code(r).endFunc(),this}endFunc(){return this._endBlockNode(Fv)}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 s=this._currNode;if(s instanceof i||t&&s 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 Jc))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}};Be.CodeGen=Hp;function no(e,i){for(let t in i)e[t]=(e[t]||0)+(i[t]||0);return e}function Xc(e,i){return i instanceof We._CodeOrName?no(e,i.names):e}function Go(e,i,t){if(e instanceof We.Name)return s(e);if(!r(e))return e;return new We._Code(e._items.reduce((n,l)=>(l instanceof We.Name&&(l=s(l)),l instanceof We._Code?n.push(...l._items):n.push(l),n),[]));function s(n){let l=t[n.str];return l===void 0||i[n.str]!==1?n:(delete i[n.str],l)}function r(n){return n instanceof We._Code&&n._items.some(l=>l instanceof We.Name&&i[l.str]===1&&t[l.str]!==void 0)}}function xU(e,i){for(let t in i)e[t]=(e[t]||0)-(i[t]||0)}function $v(e){return typeof e=="boolean"||typeof e=="number"||e===null?!e:(0,We._)`!${Sp(e)}`}Be.not=$v;var IU=Kv(Be.operators.AND);function TU(...e){return e.reduce(IU)}Be.and=TU;var PU=Kv(Be.operators.OR);function zU(...e){return e.reduce(PU)}Be.or=zU;function Kv(e){return(i,t)=>i===We.nil?t:t===We.nil?i:(0,We._)`${Sp(i)} ${e} ${Sp(t)}`}function Sp(e){return e instanceof We.Name?e:(0,We._)`(${e})`}});var Le=w(Fe=>{"use strict";Object.defineProperty(Fe,"__esModule",{value:!0});Fe.checkStrictMode=Fe.getErrorPath=Fe.Type=Fe.useFunc=Fe.setEvaluated=Fe.evaluatedPropsToName=Fe.mergeEvaluated=Fe.eachItem=Fe.unescapeJsonPointer=Fe.escapeJsonPointer=Fe.escapeFragment=Fe.unescapeFragment=Fe.schemaRefOrVal=Fe.schemaHasRulesButRef=Fe.schemaHasRules=Fe.checkUnknownRules=Fe.alwaysValidSchema=Fe.toHash=void 0;var pt=we(),AU=ha();function jU(e){let i={};for(let t of e)i[t]=!0;return i}Fe.toHash=jU;function DU(e,i){return typeof i=="boolean"?i:Object.keys(i).length===0?!0:(Yv(e,i),!Jv(i,e.self.RULES.all))}Fe.alwaysValidSchema=DU;function Yv(e,i=e.schema){let{opts:t,self:s}=e;if(!t.strictSchema||typeof i=="boolean")return;let r=s.RULES.keywords;for(let n in i)r[n]||Xv(e,`unknown keyword: "${n}"`)}Fe.checkUnknownRules=Yv;function Jv(e,i){if(typeof e=="boolean")return!e;for(let t in e)if(i[t])return!0;return!1}Fe.schemaHasRules=Jv;function NU(e,i){if(typeof e=="boolean")return!e;for(let t in e)if(t!=="$ref"&&i.all[t])return!0;return!1}Fe.schemaHasRulesButRef=NU;function MU({topSchemaRef:e,schemaPath:i},t,s,r){if(!r){if(typeof t=="number"||typeof t=="boolean")return t;if(typeof t=="string")return(0,pt._)`${t}`}return(0,pt._)`${e}${i}${(0,pt.getProperty)(s)}`}Fe.schemaRefOrVal=MU;function RU(e){return Zv(decodeURIComponent(e))}Fe.unescapeFragment=RU;function EU(e){return encodeURIComponent(xp(e))}Fe.escapeFragment=EU;function xp(e){return typeof e=="number"?`${e}`:e.replace(/~/g,"~0").replace(/\//g,"~1")}Fe.escapeJsonPointer=xp;function Zv(e){return e.replace(/~1/g,"/").replace(/~0/g,"~")}Fe.unescapeJsonPointer=Zv;function BU(e,i){if(Array.isArray(e))for(let t of e)i(t);else i(e)}Fe.eachItem=BU;function Wv({mergeNames:e,mergeToName:i,mergeValues:t,resultToName:s}){return(r,n,l,c)=>{let u=l===void 0?n:l instanceof pt.Name?(n instanceof pt.Name?e(r,n,l):i(r,n,l),l):n instanceof pt.Name?(i(r,l,n),n):t(n,l);return c===pt.Name&&!(u instanceof pt.Name)?s(r,u):u}}Fe.mergeEvaluated={props:Wv({mergeNames:(e,i,t)=>e.if((0,pt._)`${t} !== true && ${i} !== undefined`,()=>{e.if((0,pt._)`${i} === true`,()=>e.assign(t,!0),()=>e.assign(t,(0,pt._)`${t} || {}`).code((0,pt._)`Object.assign(${t}, ${i})`))}),mergeToName:(e,i,t)=>e.if((0,pt._)`${t} !== true`,()=>{i===!0?e.assign(t,!0):(e.assign(t,(0,pt._)`${t} || {}`),Ip(e,t,i))}),mergeValues:(e,i)=>e===!0?!0:fe(fe({},e),i),resultToName:Qv}),items:Wv({mergeNames:(e,i,t)=>e.if((0,pt._)`${t} !== true && ${i} !== undefined`,()=>e.assign(t,(0,pt._)`${i} === true ? true : ${t} > ${i} ? ${t} : ${i}`)),mergeToName:(e,i,t)=>e.if((0,pt._)`${t} !== true`,()=>e.assign(t,i===!0?!0:(0,pt._)`${t} > ${i} ? ${t} : ${i}`)),mergeValues:(e,i)=>e===!0?!0:Math.max(e,i),resultToName:(e,i)=>e.var("items",i)})};function Qv(e,i){if(i===!0)return e.var("props",!0);let t=e.var("props",(0,pt._)`{}`);return i!==void 0&&Ip(e,t,i),t}Fe.evaluatedPropsToName=Qv;function Ip(e,i,t){Object.keys(t).forEach(s=>e.assign((0,pt._)`${i}${(0,pt.getProperty)(s)}`,!0))}Fe.setEvaluated=Ip;var Gv={};function UU(e,i){return e.scopeValue("func",{ref:i,code:Gv[i.code]||(Gv[i.code]=new AU._Code(i.code))})}Fe.useFunc=UU;var Cp=(function(e){return e[e.Num=0]="Num",e[e.Str=1]="Str",e})(Cp||(Fe.Type=Cp={}));function OU(e,i,t){if(e instanceof pt.Name){let s=i===Cp.Num;return t?s?(0,pt._)`"[" + ${e} + "]"`:(0,pt._)`"['" + ${e} + "']"`:s?(0,pt._)`"/" + ${e}`:(0,pt._)`"/" + ${e}.replace(/~/g, "~0").replace(/\\//g, "~1")`}return t?(0,pt.getProperty)(e).toString():"/"+xp(e)}Fe.getErrorPath=OU;function Xv(e,i,t=e.opts.strictSchema){if(t){if(i=`strict mode: ${i}`,t===!0)throw new Error(i);e.self.logger.warn(i)}}Fe.checkStrictMode=Xv});var Qi=w(Tp=>{"use strict";Object.defineProperty(Tp,"__esModule",{value:!0});var ti=we(),FU={data:new ti.Name("data"),valCxt:new ti.Name("valCxt"),instancePath:new ti.Name("instancePath"),parentData:new ti.Name("parentData"),parentDataProperty:new ti.Name("parentDataProperty"),rootData:new ti.Name("rootData"),dynamicAnchors:new ti.Name("dynamicAnchors"),vErrors:new ti.Name("vErrors"),errors:new ti.Name("errors"),this:new ti.Name("this"),self:new ti.Name("self"),scope:new ti.Name("scope"),json:new ti.Name("json"),jsonPos:new ti.Name("jsonPos"),jsonLen:new ti.Name("jsonLen"),jsonPart:new ti.Name("jsonPart")};Tp.default=FU});var fa=w(ii=>{"use strict";Object.defineProperty(ii,"__esModule",{value:!0});ii.extendErrors=ii.resetErrorsCount=ii.reportExtraError=ii.reportError=ii.keyword$DataError=ii.keywordError=void 0;var Ge=we(),id=Le(),gi=Qi();ii.keywordError={message:({keyword:e})=>(0,Ge.str)`must pass "${e}" keyword validation`};ii.keyword$DataError={message:({keyword:e,schemaType:i})=>i?(0,Ge.str)`"${e}" keyword must be ${i} ($data)`:(0,Ge.str)`"${e}" keyword is invalid ($data)`};function VU(e,i=ii.keywordError,t,s){let{it:r}=e,{gen:n,compositeRule:l,allErrors:c}=r,u=iw(e,i,t);s??(l||c)?ew(n,u):tw(r,(0,Ge._)`[${u}]`)}ii.reportError=VU;function qU(e,i=ii.keywordError,t){let{it:s}=e,{gen:r,compositeRule:n,allErrors:l}=s,c=iw(e,i,t);ew(r,c),n||l||tw(s,gi.default.vErrors)}ii.reportExtraError=qU;function LU(e,i){e.assign(gi.default.errors,i),e.if((0,Ge._)`${gi.default.vErrors} !== null`,()=>e.if(i,()=>e.assign((0,Ge._)`${gi.default.vErrors}.length`,i),()=>e.assign(gi.default.vErrors,null)))}ii.resetErrorsCount=LU;function $U({gen:e,keyword:i,schemaValue:t,data:s,errsCount:r,it:n}){if(r===void 0)throw new Error("ajv implementation error");let l=e.name("err");e.forRange("i",r,gi.default.errors,c=>{e.const(l,(0,Ge._)`${gi.default.vErrors}[${c}]`),e.if((0,Ge._)`${l}.instancePath === undefined`,()=>e.assign((0,Ge._)`${l}.instancePath`,(0,Ge.strConcat)(gi.default.instancePath,n.errorPath))),e.assign((0,Ge._)`${l}.schemaPath`,(0,Ge.str)`${n.errSchemaPath}/${i}`),n.opts.verbose&&(e.assign((0,Ge._)`${l}.schema`,t),e.assign((0,Ge._)`${l}.data`,s))})}ii.extendErrors=$U;function ew(e,i){let t=e.const("err",i);e.if((0,Ge._)`${gi.default.vErrors} === null`,()=>e.assign(gi.default.vErrors,(0,Ge._)`[${t}]`),(0,Ge._)`${gi.default.vErrors}.push(${t})`),e.code((0,Ge._)`${gi.default.errors}++`)}function tw(e,i){let{gen:t,validateName:s,schemaEnv:r}=e;r.$async?t.throw((0,Ge._)`new ${e.ValidationError}(${i})`):(t.assign((0,Ge._)`${s}.errors`,i),t.return(!1))}var ao={keyword:new Ge.Name("keyword"),schemaPath:new Ge.Name("schemaPath"),params:new Ge.Name("params"),propertyName:new Ge.Name("propertyName"),message:new Ge.Name("message"),schema:new Ge.Name("schema"),parentSchema:new Ge.Name("parentSchema")};function iw(e,i,t){let{createErrors:s}=e.it;return s===!1?(0,Ge._)`{}`:KU(e,i,t)}function KU(e,i,t={}){let{gen:s,it:r}=e,n=[WU(r,t),GU(e,t)];return YU(e,i,n),s.object(...n)}function WU({errorPath:e},{instancePath:i}){let t=i?(0,Ge.str)`${e}${(0,id.getErrorPath)(i,id.Type.Str)}`:e;return[gi.default.instancePath,(0,Ge.strConcat)(gi.default.instancePath,t)]}function GU({keyword:e,it:{errSchemaPath:i}},{schemaPath:t,parentSchema:s}){let r=s?i:(0,Ge.str)`${i}/${e}`;return t&&(r=(0,Ge.str)`${r}${(0,id.getErrorPath)(t,id.Type.Str)}`),[ao.schemaPath,r]}function YU(e,{params:i,message:t},s){let{keyword:r,data:n,schemaValue:l,it:c}=e,{opts:u,propertyName:p,topSchemaRef:_,schemaPath:v}=c;s.push([ao.keyword,r],[ao.params,typeof i=="function"?i(e):i||(0,Ge._)`{}`]),u.messages&&s.push([ao.message,typeof t=="function"?t(e):t]),u.verbose&&s.push([ao.schema,l],[ao.parentSchema,(0,Ge._)`${_}${v}`],[gi.default.data,n]),p&&s.push([ao.propertyName,p])}});var rw=w(Yo=>{"use strict";Object.defineProperty(Yo,"__esModule",{value:!0});Yo.boolOrEmptySchema=Yo.topBoolOrEmptySchema=void 0;var JU=fa(),ZU=we(),QU=Qi(),XU={message:"boolean schema is false"};function eO(e){let{gen:i,schema:t,validateName:s}=e;t===!1?sw(e,!1):typeof t=="object"&&t.$async===!0?i.return(QU.default.data):(i.assign((0,ZU._)`${s}.errors`,null),i.return(!0))}Yo.topBoolOrEmptySchema=eO;function tO(e,i){let{gen:t,schema:s}=e;s===!1?(t.var(i,!1),sw(e)):t.var(i,!0)}Yo.boolOrEmptySchema=tO;function sw(e,i){let{gen:t,data:s}=e,r={gen:t,keyword:"false schema",data:s,schema:!1,schemaCode:!1,schemaValue:!1,params:{},it:e};(0,JU.reportError)(r,XU,void 0,i)}});var Pp=w(Jo=>{"use strict";Object.defineProperty(Jo,"__esModule",{value:!0});Jo.getRules=Jo.isJSONType=void 0;var iO=["string","number","integer","boolean","null","object","array"],sO=new Set(iO);function rO(e){return typeof e=="string"&&sO.has(e)}Jo.isJSONType=rO;function oO(){let e={number:{type:"number",rules:[]},string:{type:"string",rules:[]},array:{type:"array",rules:[]},object:{type:"object",rules:[]}};return{types:qe(fe({},e),{integer:!0,boolean:!0,null:!0}),rules:[{rules:[]},e.number,e.string,e.array,e.object],post:{rules:[]},all:{},keywords:{}}}Jo.getRules=oO});var zp=w(Ar=>{"use strict";Object.defineProperty(Ar,"__esModule",{value:!0});Ar.shouldUseRule=Ar.shouldUseGroup=Ar.schemaHasRulesForType=void 0;function nO({schema:e,self:i},t){let s=i.RULES.types[t];return s&&s!==!0&&ow(e,s)}Ar.schemaHasRulesForType=nO;function ow(e,i){return i.rules.some(t=>nw(e,t))}Ar.shouldUseGroup=ow;function nw(e,i){var t;return e[i.keyword]!==void 0||((t=i.definition.implements)===null||t===void 0?void 0:t.some(s=>e[s]!==void 0))}Ar.shouldUseRule=nw});var ba=w(si=>{"use strict";Object.defineProperty(si,"__esModule",{value:!0});si.reportTypeError=si.checkDataTypes=si.checkDataType=si.coerceAndCheckDataType=si.getJSONTypes=si.getSchemaTypes=si.DataType=void 0;var aO=Pp(),lO=zp(),cO=fa(),Ne=we(),aw=Le(),Zo=(function(e){return e[e.Correct=0]="Correct",e[e.Wrong=1]="Wrong",e})(Zo||(si.DataType=Zo={}));function dO(e){let i=lw(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}si.getSchemaTypes=dO;function lw(e){let i=Array.isArray(e)?e:e?[e]:[];if(i.every(aO.isJSONType))return i;throw new Error("type must be JSONType or JSONType[]: "+i.join(","))}si.getJSONTypes=lw;function uO(e,i){let{gen:t,data:s,opts:r}=e,n=gO(i,r.coerceTypes),l=i.length>0&&!(n.length===0&&i.length===1&&(0,lO.schemaHasRulesForType)(e,i[0]));if(l){let c=jp(i,s,r.strictNumbers,Zo.Wrong);t.if(c,()=>{n.length?pO(e,i,n):Dp(e)})}return l}si.coerceAndCheckDataType=uO;var cw=new Set(["string","number","integer","boolean","null"]);function gO(e,i){return i?e.filter(t=>cw.has(t)||i==="array"&&t==="array"):[]}function pO(e,i,t){let{gen:s,data:r,opts:n}=e,l=s.let("dataType",(0,Ne._)`typeof ${r}`),c=s.let("coerced",(0,Ne._)`undefined`);n.coerceTypes==="array"&&s.if((0,Ne._)`${l} == 'object' && Array.isArray(${r}) && ${r}.length == 1`,()=>s.assign(r,(0,Ne._)`${r}[0]`).assign(l,(0,Ne._)`typeof ${r}`).if(jp(i,r,n.strictNumbers),()=>s.assign(c,r))),s.if((0,Ne._)`${c} !== undefined`);for(let p of t)(cw.has(p)||p==="array"&&n.coerceTypes==="array")&&u(p);s.else(),Dp(e),s.endIf(),s.if((0,Ne._)`${c} !== undefined`,()=>{s.assign(r,c),mO(e,c)});function u(p){switch(p){case"string":s.elseIf((0,Ne._)`${l} == "number" || ${l} == "boolean"`).assign(c,(0,Ne._)`"" + ${r}`).elseIf((0,Ne._)`${r} === null`).assign(c,(0,Ne._)`""`);return;case"number":s.elseIf((0,Ne._)`${l} == "boolean" || ${r} === null
|
|
3
3
|
|| (${l} == "string" && ${r} && ${r} == +${r})`).assign(c,(0,Ne._)`+${r}`);return;case"integer":s.elseIf((0,Ne._)`${l} === "boolean" || ${r} === null
|
|
4
4
|
|| (${l} === "string" && ${r} && ${r} == +${r} && !(${r} % 1))`).assign(c,(0,Ne._)`+${r}`);return;case"boolean":s.elseIf((0,Ne._)`${r} === "false" || ${r} === 0 || ${r} === null`).assign(c,!1).elseIf((0,Ne._)`${r} === "true" || ${r} === 1`).assign(c,!0);return;case"null":s.elseIf((0,Ne._)`${r} === "" || ${r} === 0 || ${r} === false`),s.assign(c,null);return;case"array":s.elseIf((0,Ne._)`${l} === "string" || ${l} === "number"
|
|
@@ -41,7 +41,7 @@ Should be: [ [ object1, pointer1 ], [ object 2, pointer2 ], etc... ]`),r}}static
|
|
|
41
41
|
`,l=!0)}}),(0,Oz.saveAs)(new Blob([n],{type:"text/plain;charset=utf-8"}),`${this.plugin.name}.log.txt`),this.midAction=!1},error:s=>ue(this,null,function*(){let r;try{r=JSON.parse(yield s.error.text()).message}catch(n){console.error(n)}this.$toastr.error(r||this.$translate.instant("logs.download.error"),this.$translate.instant("toast.title_error")),this.midAction=!1})})}).catch(()=>{this.midAction=!1})}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(s){return new(s||e)};static \u0275cmp=ve({type:e,selectors:[["ng-component"]],viewQuery:function(s,r){s&1&&br(r.termTarget,Bte,5),s&2&&yr()},hostBindings:function(s,r){s&1&&Q("resize",function(l){return r.onWindowResize(l)},Gy)},inputs:{plugin:"plugin",childBridges:"childBridges"},decls:22,vars:21,consts:[["pluginlogoutput",""],[1,"modal-content"],[1,"modal-header"],[1,"modal-title"],["type","button","data-bs-dismiss","modal",1,"btn-close",3,"click","disabled"],[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","disabled"],[1,"text-center"],[1,"text-end"],["container","modal","placement","top","triggers","hover",1,"btn","btn-primary",3,"click","ngbTooltip","openDelay","disabled"],[1,"fas","fa-download"],["container","modal","placement","top","triggers","hover",1,"btn","btn-danger","ms-3",3,"ngbTooltip","openDelay","disabled"],["container","modal","placement","top","triggers","hover",1,"btn","btn-danger","ms-3",3,"click","ngbTooltip","openDelay","disabled"],[1,"fas","fa-power-off"]],template:function(s,r){if(s&1){let n=se();b(0,"div",1)(1,"div",2)(2,"h5",3),A(3),f(),b(4,"button",4),D(5,"translate"),Q("click",function(){return G(n),Y(r.dismissModal())}),f()(),b(6,"div",5),R(7,"div",6,0),f(),b(9,"div",7)(10,"div",8)(11,"button",9),D(12,"translate"),Q("click",function(){return G(n),Y(r.dismissModal())}),A(13),D(14,"translate"),f()(),R(15,"div",10),b(16,"div",11)(17,"button",12),D(18,"translate"),D(19,"translate"),Q("click",function(){return G(n),Y(r.downloadLogFile())}),R(20,"i",13),f(),U(21,Ute,4,8,"button",14),f()()()}s&2&&(m(3),re(r.plugin.displayName||r.plugin.name),m(),S("disabled",r.midAction),ge("aria-label",B(5,11,"form.button_close")),m(7),S("disabled",r.midAction),ge("aria-label",B(12,13,"form.button_close")),m(2),ie(" ",B(14,15,"form.button_close")," "),m(4),S("ngbTooltip",B(18,17,"logs.title_download_log_file"))("openDelay",150)("disabled",r.midAction),ge("aria-label",B(19,19,"logs.title_download_log_file")),m(4),O(r.childBridges.length?21:-1))},dependencies:[Ir,xt],encapsulation:2})}return e})();var Vz=lt(Kc(),1);var J_=()=>({app:"Homebridge v2"});function Ote(e,i){e&1&&(b(0,"div",5),R(1,"i",12),f())}function Fte(e,i){e&1&&(b(0,"p",9),A(1,"All your plugins are marked as compatible with Homebridge v2."),f())}function Vte(e,i){e&1&&(b(0,"p",9),A(1,"To ignore this warning and continue with the update, click continue below."),f())}function qte(e,i){if(e&1&&(b(0,"p",9),A(1," Some of your plugins are not explicitly marked as compatible with Homebridge v2. This does "),b(2,"span",17),A(3,"not"),f(),A(4," necessarily mean that they won't work. We just can't guarantee that they will. "),f(),b(5,"p",9),A(6," For more information about this update, please see the "),b(7,"a",18),A(8,"wiki page"),f(),A(9,". "),f(),U(10,Vte,2,0,"p",9)),e&2){let t=H(2);m(10),O(t.isUpdating?10:-1)}}function Lte(e,i){e&1&&(b(0,"div",19),A(1," Node.js Version"),R(2,"br"),b(3,"span",20),A(4),D(5,"translate"),f()(),b(6,"div",21),R(7,"i",22),f()),e&2&&(m(4),re(zt(5,1,"status.readiness.node_yes",rt(4,J_))))}function $te(e,i){e&1&&(b(0,"div",19),A(1," Node.js Version"),R(2,"br"),b(3,"span",20),A(4),D(5,"translate"),f(),R(6,"br"),b(7,"a",23),A(8),D(9,"translate"),R(10,"i",24),f()(),b(11,"div",21),R(12,"i",25),f()),e&2&&(m(4),re(zt(5,2,"status.readiness.node_no",rt(7,J_))),m(4),ie(" ",B(9,5,"plugins.compat.node_link")," "))}function Kte(e,i){e&1&&R(0,"i",26)}function Wte(e,i){e&1&&R(0,"i",27)}function Gte(e,i){if(e&1&&(b(0,"li",16)(1,"div",19),A(2),f(),b(3,"div",21),U(4,Kte,1,0,"i",26),U(5,Wte,1,0,"i",27),f()()),e&2){let t=i.$implicit;m(2),re(t.displayName),m(2),O(t.hb2Ready==="supported"?4:-1),m(),O(t.hb2Ready==="unknown"?5:-1)}}function Yte(e,i){if(e&1&&(b(0,"div",13),R(1,"img",14),f(),U(2,Fte,2,0,"p",9),U(3,qte,11,1),b(4,"ul",15)(5,"li",16),U(6,Lte,8,5)(7,$te,13,8),f(),Zt(8,Gte,6,3,"li",16,Jt),f()),e&2){let t=H();m(2),O(t.allPluginsSupported?2:-1),m(),O(t.allPluginsSupported?-1:3),m(3),O(t.nodeReady?6:7),m(2),Qt(t.installedPlugins)}}function Jte(e,i){if(e&1){let t=se();b(0,"button",28),D(1,"translate"),Q("click",function(){G(t);let r=H();return Y(r.closeModal("Dismiss"))}),A(2),D(3,"translate"),f()}e&2&&(ge("aria-label",B(1,2,"form.button_close")),m(2),ie(" ",B(3,4,"form.button_close")," "))}function Zte(e,i){if(e&1){let t=se();b(0,"button",28),D(1,"translate"),Q("click",function(){G(t);let r=H();return Y(r.closeModal("Dismiss"))}),A(2),D(3,"translate"),f()}e&2&&(ge("aria-label",B(1,2,"form.button_close")),m(2),ie(" ",B(3,4,"form.button_close")," "))}function Qte(e,i){if(e&1){let t=se();b(0,"button",29),Q("click",function(){G(t);let r=H();return Y(r.closeModal("update"))}),A(1),D(2,"translate"),f()}if(e&2){let t=H();S("disabled",t.loading),m(),ie(" ",B(2,2,"form.button_continue")," ")}}var qz=(()=>{class e{$activeModal=j(Ct);$api=j(Ze);$settings=j(_t);$toastr=j(nt);$translate=j(ot);$ws=j(Pr);io;isUpdating=!1;skipIfCompatible=!0;loading=!0;installedPlugins=[];allPluginsSupported=!0;nodeReady=!1;ngOnInit(){return ue(this,null,function*(){this.io=this.$ws.getExistingNamespace("status"),this.io.socket.connected&&(yield this.checkHomebridgeUiVersion()),yield this.loadInstalledPlugins(),this.loading=!1})}checkHomebridgeUiVersion(){return ue(this,null,function*(){try{let{nodeVersion:t}=yield Te(this.io.request("get-homebridge-server-info"));this.nodeReady=(0,Vz.satisfies)(t,">=20")}catch(t){console.error(t),this.$toastr.error(t.message,this.$translate.instant("toast.title_error"))}})}loadInstalledPlugins(){return ue(this,null,function*(){this.installedPlugins=[],this.loading=!0;let t=this.$settings.env.homebridgeVersion.split(".")[0];try{let s=yield Te(this.$api.get("/plugins"));this.installedPlugins=s.filter(r=>r.name!=="homebridge-config-ui-x").map(r=>{let n=r.engines?.homebridge?.split("||").map(c=>c.trim())||[],l=t==="2"?"hide":n.some(c=>c.startsWith("^2")||c.startsWith(">=2"))?"supported":"unknown";return l==="unknown"&&(this.allPluginsSupported=!1),qe(fe({},r),{hb2Ready:l})}).sort((r,n)=>r.name.localeCompare(n.name)),this.skipIfCompatible&&this.installedPlugins.length===0&&this.$activeModal.close("update")}catch(s){console.error(s),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(s){return new(s||e)};static \u0275cmp=ve({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-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-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(s,r){s&1&&(b(0,"div",0)(1,"div",1)(2,"h5",2),A(3),D(4,"translate"),f(),b(5,"button",3),D(6,"translate"),Q("click",function(){return r.closeModal("Dismiss")}),f()(),b(7,"div",4),U(8,Ote,2,0,"div",5)(9,Yte,10,3),f(),b(10,"div",6)(11,"div",7),U(12,Jte,4,6,"button",8),f(),b(13,"div",9),U(14,Zte,4,6,"button",8),f(),b(15,"div",10),U(16,Qte,3,4,"button",11),f()()()),s&2&&(m(3),re(zt(4,6,"status.readiness.title",rt(11,J_))),m(2),ge("aria-label",B(6,9,"form.button_close")),m(3),O(r.loading?8:9),m(4),O(r.isUpdating?12:-1),m(2),O(r.isUpdating?-1:14),m(2),O(r.isUpdating?16:-1))},dependencies:[ev,xt],encapsulation:2})}return e})();var Xte=(e,i)=>({iconStar:e,iconThumbsUp:i}),Yz=(e,i,t,s)=>({"fa-arrow-alt-circle-down":e,"fa-code-compare":i,"fa-arrow-alt-circle-up":t,"fa-trash":s}),eie=()=>["homebridge","homebridge-config-ui-x"],tie=e=>({pluginName:e});function iie(e,i){e&1&&(b(0,"p",13),A(1),D(2,"translate"),f()),e&2&&(m(),re(B(2,1,"plugins.settings.restart_required")))}function sie(e,i){e&1&&(b(0,"p",13),A(1),D(2,"translate"),f()),e&2&&(m(),re(B(2,1,"restart.child_bridges")))}function rie(e,i){if(e&1&&(R(0,"p",12),D(1,"translate"),U(2,iie,3,3,"p",13),U(3,sie,3,3,"p",13)),e&2){let t=H(3);S("innerHTML",zt(1,3,"plugins.manage.github_support",io(6,Xte,t.iconStar,t.iconThumbsUp)),Oe),m(2),O(t.childBridges.length===0?2:-1),m(),O(t.childBridges.length>0?3:-1)}}function oie(e,i){if(e&1&&(b(0,"div",9),R(1,"i",10),f(),b(2,"h5",11),A(3),f(),U(4,rie,4,9)),e&2){let t=H(2);m(3),Bc("",t.pastTenseVerb,": ",t.pluginDisplayName," (",t.targetVersionPretty,")"),m(),O(t.isDisabled?-1:4)}}function nie(e,i){if(e&1&&(b(0,"div",6),U(1,oie,5,4),f()),e&2){let t=H();m(),O(t.justUpdatedPlugin?1:-1)}}function aie(e,i){if(e&1&&(b(0,"div",7)(1,"div",9),R(2,"i",14),f(),b(3,"ul",15)(4,"li"),A(5),D(6,"translate"),f(),b(7,"li"),A(8),D(9,"translate"),f()(),b(10,"pre",16),A(11),f()()),e&2){let t=H();m(2),S("ngClass",Oo(9,Yz,t.action==="Install",t.action==="Update"&&t.installedVersion,t.action==="Update"&&!t.installedVersion,t.action==="Uninstall")),m(3),re(B(6,5,"plugins.manage.online_updates")),m(3),re(B(9,7,"plugins.manage.manual_update_command")),m(3),vr(`hb-service stop
|
|
42
42
|
npm install -g `,t.pluginName,"@",t.targetVersion,`
|
|
43
43
|
hb-service start`)}}function lie(e,i){if(e&1&&(b(0,"span"),A(1),f()),e&2){let t=H(3);m(),ie("v",t.installedVersion," \u2192 ")}}function cie(e,i){if(e&1&&(b(0,"h5",18),U(1,lie,2,1,"span"),A(2),f()),e&2){let t=H(2);m(),O(t.installedVersion?1:-1),m(),ie(" ",t.targetVersionPretty," ")}}function die(e,i){e&1&&(b(0,"div",26),R(1,"i",27),f())}function uie(e,i){if(e&1&&R(0,"markdown",28),e&2){let t=H(4);S("data",t.versionNotes)}}function gie(e,i){e&1&&(b(0,"div",29),A(1),D(2,"translate"),f()),e&2&&(m(),re(B(2,1,"plugins.manage.notes_none")))}function pie(e,i){if(e&1&&(b(0,"div",29),A(1),D(2,"translate"),R(3,"br"),A(4),D(5,"translate"),R(6,"br"),A(7),D(8,"translate"),R(9,"br"),f()),e&2){let t=H(6);m(),ie(" ",zt(2,3,"plugins.manage.notes_beta_1",vi(10,tie,t.pluginDisplayName))),m(3),ie(" ",B(5,6,"plugins.manage.notes_beta_2")),m(3),ie(" ",B(8,8,"plugins.manage.notes_beta_3"))}}function mie(e,i){e&1&&(b(0,"div",29),A(1),D(2,"translate"),f()),e&2&&(m(),re(B(2,1,"plugins.manage.notes_latest")))}function hie(e,i){if(e&1&&U(0,pie,10,12,"div",29)(1,mie,3,3,"div",29),e&2){let t=H(5);O(t.targetVersion.includes("beta")||t.targetVersion.includes("alpha")||t.targetVersion.includes("next")?0:1)}}function _ie(e,i){if(e&1&&U(0,gie,3,3,"div",29)(1,hie,2,1),e&2){let t=H(4);O(t.versionNotesShow?0:1)}}function fie(e,i){if(e&1&&U(0,uie,1,1,"markdown",28)(1,_ie,2,1),e&2){let t=H(3);O(t.versionNotes?0:1)}}function bie(e,i){if(e&1&&(b(0,"div",25),U(1,die,2,0,"div",26)(2,fie,2,1),f()),e&2){let t=H(2);m(),O(t.action==="Update"&&!t.versionNotesLoaded?1:2)}}function yie(e,i){e&1&&(b(0,"div",26),R(1,"i",27),f())}function vie(e,i){if(e&1&&R(0,"markdown",28),e&2){let t=H(4);S("data",t.fullChangelog)}}function wie(e,i){e&1&&(R(0,"div",31),D(1,"translate")),e&2&&S("innerHTML",B(1,1,"plugins.manage.changelog_none"),Oe)}function kie(e,i){if(e&1&&U(0,vie,1,1,"markdown",28)(1,wie,2,3,"div",31),e&2){let t=H(3);O(t.fullChangelog?0:1)}}function Hie(e,i){if(e&1&&(b(0,"div",30),U(1,yie,2,0,"div",26)(2,kie,2,1),f()),e&2){let t=H(2);m(),O(t.action==="Update"&&!t.fullChangelogLoaded?1:2)}}function Sie(e,i){if(e&1){let t=se();b(0,"div",24)(1,"p",32)(2,"span",33),A(3),D(4,"translate"),f(),b(5,"a",34),Q("click",function(){G(t);let r=H(2);return Y(r.downloadBackupFile())}),R(6,"i",35),f()(),b(7,"p",36),A(8),D(9,"translate"),f()()}e&2&&(m(3),re(B(4,2,"plugins.manage.backup")),m(5),re(B(9,4,"plugins.manage.hb_restart")))}function Cie(e,i){if(e&1){let t=se();b(0,"div",6)(1,"div",9),R(2,"i",17),f(),U(3,cie,3,2,"h5",18),b(4,"ul",19,0),tt("activeIdChange",function(r){G(t);let n=H();return et(n.releaseNotesTab,r)||(n.releaseNotesTab=r),Y(r)}),b(6,"li",20)(7,"button",21),A(8),D(9,"translate"),f(),Ie(10,bie,3,1,"ng-template",22),f(),b(11,"li",20)(12,"button",21),A(13),D(14,"translate"),f(),Ie(15,Hie,3,1,"ng-template",22),f()(),R(16,"div",23),U(17,Sie,10,6,"div",24),f()}if(e&2){let t=Ec(5),s=H();m(2),S("ngClass",Oo(13,Yz,s.action==="Install"&&!s.installedVersion,s.action==="Install"&&s.installedVersion,s.action==="Update",s.action==="Uninstall")),m(),O(s.latestVersion?3:-1),m(),Xe("activeId",s.releaseNotesTab),m(2),S("ngbNavItem",1),m(2),re(B(9,9,"plugins.manage.notes")),m(3),S("ngbNavItem",2),m(2),re(B(14,11,"plugins.manage.changelog")),m(3),S("ngbNavOutlet",t),m(),O(rt(18,eie).includes(s.pluginName)?17:-1)}}function xie(e,i){if(e&1){let t=se();b(0,"button",43),D(1,"translate"),Q("click",function(){G(t);let r=H(2);return Y(r.dismissModal())}),A(2),D(3,"translate"),f()}e&2&&(ge("aria-label",B(1,2,"form.button_close")),m(2),ie(" ",B(3,4,"form.button_close")," "))}function Iie(e,i){if(e&1){let t=se();b(0,"button",43),D(1,"translate"),Q("click",function(){G(t);let r=H(2);return Y(r.dismissModal())}),A(2),D(3,"translate"),f()}e&2&&(ge("aria-label",B(1,2,"form.button_close")),m(2),ie(" ",B(3,4,"form.button_close")," "))}function Tie(e,i){if(e&1){let t=se();b(0,"button",44),Q("click",function(){G(t);let r=H(2);return Y(r.update())}),A(1),D(2,"translate"),f()}e&2&&(m(),re(B(2,1,"form.button_continue")))}function Pie(e,i){if(e&1){let t=se();b(0,"button",44),Q("click",function(){G(t);let r=H(2);return Y(r.childBridges.length>0?r.onRestartChildBridgeClick():r.onRestartHomebridgeClick())}),A(1),D(2,"translate"),f()}e&2&&(m(),ie(" ",B(2,1,"menu.tooltip_restart")," "))}function zie(e,i){if(e&1){let t=se();b(0,"button",45),Q("click",function(){G(t);let r=H(2);return Y(r.downloadLogFile())}),A(1),D(2,"translate"),f()}e&2&&(m(),re(B(2,1,"form.button_download")))}function Aie(e,i){if(e&1&&(b(0,"div",8)(1,"div",37),U(2,xie,4,6,"button",38),f(),b(3,"div",39),U(4,Iie,4,6,"button",38),f(),b(5,"div",40),U(6,Tie,3,3,"button",41),U(7,Pie,3,3,"button",41),U(8,zie,3,3,"button",42),f()()),e&2){let t=H();m(2),O(!t.justUpdatedPlugin&&t.onlineUpdateOk||t.justUpdatedPlugin&&(!t.isDisabled||t.actionFailed)?2:-1),m(2),O(t.justUpdatedPlugin&&t.isDisabled&&!t.actionFailed||!t.onlineUpdateOk?4:-1),m(2),O(t.onlineUpdateOk&&t.releaseNotesShow?6:-1),m(),O(t.justUpdatedPlugin&&!t.isDisabled?7:-1),m(),O(t.actionFailed?8:-1)}}var Dn=(()=>{class e{$activeModal=j(Ct);$api=j(Ze);$backup=j(zv);$modal=j(ki);$router=j(Ts);$settings=j(_t);$toastr=j(nt);$translate=j(ot);$ws=j(Pr);io;toastSuccess;term=new Wz.Terminal;termTarget;fitAddon=new $z.FitAddon;webLinksAddon=new Kz.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-star primary-text"></i>';iconThumbsUp='<i class="fas 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 s=t.toString().replace(/\x1B\[(\d{1,3}(;\d{1,2})?)?[mGK]/g,"").trimEnd();s&&(this.errorLog+=`${s}\r
|
|
44
|
-
`)}),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:()=>ue(this,null,function*(){if(this.pluginName==="homebridge-config-ui-x")try{this.$settings.webroot&&this.$settings.webroot!=="/"&&(yield Te(this.$api.put("/server/webroot",{webroot:this.$settings.webroot}))),window.location.href="restart"}catch(t){console.error("Failed to update webroot:",t),window.location.href="restart"}else{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 ue(this,null,function*(){try{for(let s of this.childBridges)yield Te(this.$api.put(`/server/restart/${s.username}`,{}));let t=this.$modal.open(Fz,{size:"xl",backdrop:"static"});t.componentInstance.plugin={name:this.pluginName,displayName:this.pluginDisplayName},t.componentInstance.childBridges=this.childBridges}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,Gz.saveAs)(t,`${this.pluginName}-error.log`)}downloadBackupFile(){return ue(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(Ko,{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 ue(this,null,function*(){let t="update";if(Number(this.installedVersion.split(".")[0])<2&&["2","alpha","beta"].includes(this.targetVersion.split(".")[0])){let s=this.$modal.open(qz,{size:"lg",backdrop:"static"});s.componentInstance.isUpdating=!0,t=yield s.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:s=>{console.error(s),this.$router.navigate(["/restart"])}})},error:s=>{this.actionFailed=!0,console.error(s),this.$toastr.error(s.message,this.$translate.instant("toast.title_error")),this.$activeModal.close()}}):this.$activeModal.close()})}getVersionNotes(){return ue(this,null,function*(){this.releaseNotesShow=!0;try{let t=yield Te(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 ue(this,null,function*(){(yield Te(this.$api.get("/status/homebridge/child-bridges"))).forEach(s=>{this.pluginName===s.plugin&&this.childBridges.push(s)})})}static \u0275fac=function(s){return new(s||e)};static \u0275cmp=ve({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-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","primary-text",2,"font-size","75px",3,"ngClass"],[1,"mb-3"],[1,"p-2","mb-0"],[1,"far","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-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-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(s,r){s&1&&(b(0,"div",1)(1,"div",2)(2,"h5",3),A(3),f(),b(4,"button",4),D(5,"translate"),Q("click",function(){return r.dismissModal()}),f()(),R(6,"div",5),U(7,nie,2,1,"div",6),U(8,aie,12,14,"div",7),U(9,Cie,18,19,"div",6),U(10,Aie,9,5,"div",8),f()),s&2&&(m(3),re(r.pluginDisplayName),m(),ge("aria-label",B(5,7,"form.button_close")),m(2),S("hidden",!r.onlineUpdateOk||r.actionComplete||r.releaseNotesShow),m(),O(r.actionComplete?7:-1),m(),O(r.onlineUpdateOk?-1:8),m(),O(r.releaseNotesShow&&!r.actionComplete&&r.onlineUpdateOk?9:-1),m(),O(!r.onlineUpdateOk||r.actionComplete||r.releaseNotesShow||r.actionFailed?10:-1))},dependencies:[Lo,qo,$o,wi,bv,_v,hv,mv,fv,xt],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 Jz=lt(Kc(),1);var jie=()=>["homebridge","homebridge-config-ui-x"];function Die(e,i){e&1&&(b(0,"div",5),R(1,"i",12),f())}function Nie(e,i){if(e&1&&(R(0,"i",20),b(1,"h6",21),A(2),D(3,"translate"),f(),b(4,"p",21),A(5),D(6,"translate"),b(7,"span",22),A(8),f()()),e&2){let t=H(2);m(2),re(B(3,3,"plugins.manage.select_version")),m(3),ie(" ",B(6,5,"plugins.status_installed"),": "),m(3),ie("v",t.plugin.installedVersion)}}function Mie(e,i){e&1&&(R(0,"i",23),b(1,"h6",21),A(2),D(3,"translate"),f()),e&2&&(m(2),re(B(3,1,"plugins.manage.select_version")))}function Rie(e,i){e&1&&R(0,"i",26)}function Eie(e,i){e&1&&R(0,"i",27)}function Bie(e,i){if(e&1){let t=se();b(0,"li",14)(1,"span",8),A(2),R(3,"br"),b(4,"small",24),A(5),f()(),b(6,"button",25),Q("click",function(){let r=G(t).$implicit,n=H(2);return Y(n.doInstall(r.version))}),U(7,Rie,1,0,"i",26)(8,Eie,1,0,"i",27),f()()}if(e&2){let t=i.$implicit,s=H(2);m(2),ie(" ",t.tag," "),m(3),ie("v",t.version),m(2),O(s.plugin.installedVersion===t.version?7:8)}}function Uie(e,i){e&1&&A(0," \u2713 ")}function Oie(e,i){if(e&1&&(b(0,"option",17),A(1),U(2,Uie,1,0),f()),e&2){let t=i.$implicit,s=H(2);S("value",t.version)("selected",s.versionSelect==t.version),m(),ie(" v",t.version," "),m(),O(t.version==s.plugin.installedVersion?2:-1)}}function Fie(e,i){e&1&&R(0,"i",26)}function Vie(e,i){e&1&&R(0,"i",27)}function qie(e,i){if(e&1){let t=se();b(0,"button",25),Q("click",function(){G(t);let r=H(2);return Y(r.doInstall(r.versionSelect))}),U(1,Fie,1,0,"i",26)(2,Vie,1,0,"i",27),f()}if(e&2){let t=H(2);m(),O(t.plugin.installedVersion===t.versionSelect?1:2)}}function Lie(e,i){if(e&1&&(b(0,"ul",19)(1,"li",28)(2,"div",8),A(3),D(4,"translate"),R(5,"br"),b(6,"span",29),A(7),D(8,"translate"),f()(),b(9,"div",30),R(10,"input",31),D(11,"translate"),R(12,"label",32),f()()()),e&2){let t=H(2);m(3),ie(" ",B(4,4,"plugins.manage.hide_updates")),m(4),re(B(8,6,"plugins.manage.hide_updates_desc")),m(3),S("formControl",t.hideUpdatesFormControl),ge("aria-label",B(11,8,"plugins.manage.hide_updates"))}}function $ie(e,i){if(e&1){let t=se();b(0,"div",6),U(1,Nie,9,7)(2,Mie,4,3),b(3,"ul",13),Zt(4,Bie,9,3,"li",14,Jt),b(6,"li",14)(7,"div",15),A(8),D(9,"translate"),R(10,"br"),b(11,"select",16),tt("ngModelChange",function(r){G(t);let n=H();return et(n.versionSelect,r)||(n.versionSelect=r),Y(r)}),Zt(12,Oie,3,4,"option",17,Jt),f()(),U(14,qie,3,1,"button",18),f()(),U(15,Lie,13,10,"ul",19),f()}if(e&2){let t=H();m(),O(t.plugin.installedVersion?1:2),m(3),Qt(t.versionsWithTags),m(4),ie(" ",B(9,5,"plugins.manage.all_versions")," "),m(3),Xe("ngModel",t.versionSelect),m(),Qt(t.versions),m(2),O(t.versionSelect?14:-1),m(),O(t.plugin.installedVersion&&!rt(7,jie).includes(t.plugin.name)?15:-1)}}var Zz=(()=>{class e{$activeModal=j(Ct);$api=j(Ze);$settings=j(_t);$toastr=j(nt);$translate=j(ot);plugin;isUpdateHidden=!1;hideUpdatesFormControl=new nv(!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(Eo(750)).subscribe(t=>this.toggleHideUpdates(t))}doInstall(t){this.$activeModal.close({name:this.plugin.name,version:t,engines:this.versions.find(s=>s.version===t).engines,action:this.plugin.installedVersion?"alternate":"install"})}toggleHideUpdates(t){return ue(this,null,function*(){let s=this.$settings.env.plugins?.hideUpdatesFor||[];t?s.includes(this.plugin.name)||(s=[...s,this.plugin.name].sort((r,n)=>r.localeCompare(n))):s=s.filter(r=>r!==this.plugin.name);try{yield Te(this.$api.put("/config-editor/ui/plugins/hide-updates-for",{body:s})),this.$settings.setEnvItem("plugins.hideUpdatesFor",s),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[s,r]of Object.entries(t.versions))this.versions.push({version:s,engines:r.engines||null}),Object.keys(t.tags).filter(n=>t.tags[n]===s).forEach(n=>{this.versionsWithTags.push({version:s,tag:n})});this.plugin.installedVersion&&!this.versions.find(s=>s.version===this.plugin.installedVersion)&&this.versions.push({version:this.plugin.installedVersion,engines:this.plugin.engines||null}),this.versions.sort((s,r)=>(0,Jz.rcompare)(s.version,r.version)),this.versionsWithTags.sort((s,r)=>{let n=["latest","next","beta","alpha"],l=n.includes(s.tag)?n.indexOf(s.tag):999,c=n.includes(r.tag)?n.indexOf(r.tag):999;return l-c}),!this.versions.find(s=>s.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(s){return new(s||e)};static \u0275cmp=ve({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-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-code-compare","primary-text","mb-3",2,"font-size","75px"],[1,"mb-3"],[1,"font-monospace"],[1,"far","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-rotate-right"],[1,"fas","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(s,r){s&1&&(b(0,"div",0)(1,"div",1)(2,"h5",2),A(3),f(),b(4,"button",3),D(5,"translate"),Q("click",function(){return r.dismissModal()}),f()(),b(6,"div",4),U(7,Die,2,0,"div",5)(8,$ie,16,8,"div",6),f(),b(9,"div",7),R(10,"div",8),b(11,"div",9)(12,"button",10),D(13,"translate"),Q("click",function(){return r.dismissModal()}),A(14),D(15,"translate"),f()(),R(16,"div",11),f()()),s&2&&(m(3),re(r.plugin.displayName||r.plugin.name),m(),ge("aria-label",B(5,5,"form.button_close")),m(3),O(r.loading?7:8),m(5),ge("aria-label",B(13,7,"form.button_close")),m(2),ie(" ",B(15,9,"form.button_close")," "))},dependencies:[us,Cr,xr,Hr,Fo,ei,Ji,ua,Sr,xt],encapsulation:2})}return e})();var Qz=lt(sU(),1);var Hu=(()=>{class e{transform(t){return t.replace(/\$\{\{HOSTNAME\}\}/g,location.hostname)}static \u0275fac=function(s){return new(s||e)};static \u0275pipe=Yy({name:"interpolateMd",type:e,pure:!0})}return e})();var Xz=(e,i,t)=>({"fa-circle-check green-text":e,"fa-circle-exclamation red-text":i,"fa-circle-exclamation orange-text":t});function Kie(e,i){e&1&&(b(0,"div",5),R(1,"i",14),f())}function Wie(e,i){e&1&&(b(0,"div",6),A(1),D(2,"translate"),D(3,"translate"),f()),e&2&&(m(),vr(" ",B(2,2,"plugins.settings.message_manual_config_required")," ",B(3,4,"plugins.settings.message_consult_documentation")," "))}function Gie(e,i){if(e&1&&(R(0,"markdown",7),D(1,"interpolateMd")),e&2){let t=H();S("data",B(1,1,t.schema.headerDisplay))}}function Yie(e,i){if(e&1){let t=se();b(0,"button",28),D(1,"translate"),Q("click",function(){G(t);let r=H(2).$index,n=H(2);return Y(n.removeBlock(r))}),R(2,"i",29),f()}e&2&&S("ngbTooltip",B(1,2,"form.button_delete"))("openDelay",150)}function Jie(e,i){if(e&1){let t=se();U(0,Yie,3,4,"button",25),b(1,"button",26),D(2,"translate"),Q("click",function(){G(t);let r=H().$index,n=H(2);return Y(n.editBlock(r))}),R(3,"i",27),f()}if(e&2){let t=H().$index,s=H(2);O(s.show==="configBlock."+t?0:-1),m(),S("ngbTooltip",B(2,3,"form.button_edit"))("openDelay",150)}}function Zie(e,i){if(e&1&&(R(0,"i",21),D(1,"translate")),e&2){let t=H().$index,s=H(2);S("ngClass",di(5,Xz,s.formBlocksValid[t],s.strictValidation&&!s.formBlocksValid[t],!s.strictValidation&&!s.formBlocksValid[t]))("ngbTooltip",B(1,3,s.formBlocksValid[t]?"form.label_valid":s.strictValidation?"form.label_invalid_strict":"form.label_invalid"))("openDelay",150)}}function Qie(e,i){if(e&1){let t=se();b(0,"div",16)(1,"div",18)(2,"div",19)(3,"h5",20),A(4),f(),b(5,"div"),U(6,Jie,4,5),U(7,Zie,2,9,"i",21),f()()(),b(8,"div",22)(9,"div",23)(10,"ngx-monaco-editor",24),tt("ngModelChange",function(r){G(t);let n=H(2);return et(n.currentBlock,r)||(n.currentBlock=r),Y(r)}),Q("onInit",function(r){G(t);let n=H(2);return Y(n.onEditorInit(r))}),f()()()()}if(e&2){let t=i.$implicit,s=i.$index,r=H(2);S("ngbAccordionItem","configBlock."+s)("collapsed",r.show!=="configBlock."+s)("id","configBlock."+s),m(4),re(t.name||r.pluginAlias),m(2),O(!(r.schema!=null&&r.schema.singular)||r.pluginConfig.length>1?6:-1),m(),O(r.schema!=null&&r.schema.singular?-1:7),m(3),S("options",r.editorOptions),Xe("ngModel",r.currentBlock)}}function Xie(e,i){if(e&1&&(b(0,"div",17),R(1,"markdown",7),D(2,"interpolateMd"),f()),e&2){let t=H(2);m(),S("data",B(2,1,t.schema.footerDisplay))}}function ese(e,i){if(e&1&&(b(0,"div",15),Zt(1,Qie,11,8,"div",16,Jt),f(),U(3,Xie,3,3,"div",17)),e&2){let t=H();S("closeOthers",!0),m(),Qt(t.pluginConfig),m(2),O(t.schema!=null&&t.schema.footerDisplay?3:-1)}}function tse(e,i){if(e&1&&(R(0,"i",30),D(1,"translate")),e&2){let t=H(2);S("ngClass",di(5,Xz,t.formIsValid,t.strictValidation&&!t.formIsValid,!t.strictValidation&&!t.formIsValid))("ngbTooltip",B(1,3,t.formIsValid?"form.label_valid":t.strictValidation?"form.label_invalid_strict":"form.label_invalid"))("openDelay",150)}}function ise(e,i){if(e&1){let t=se();b(0,"button",34),Q("click",function(){G(t);let r=H(2);return Y(r.addBlock())}),R(1,"i",35),f()}}function sse(e,i){e&1&&(A(0),D(1,"translate")),e&2&&ie(" ",B(1,1,"form.button_save")," ")}function rse(e,i){e&1&&R(0,"i",33)}function ose(e,i){if(e&1){let t=se();U(0,tse,2,9,"i",30),U(1,ise,2,0,"button",31),b(2,"button",32),Q("click",function(){G(t);let r=H();return Y(r.save())}),U(3,sse,2,3),U(4,rse,1,0,"i",33),f()}if(e&2){let t=H();O(t.schema!=null&&t.schema.singular?0:-1),m(),O(t.schema!=null&&t.schema.singular?-1:1),m(),S("disabled",t.saveInProgress||!t.formIsValid&&t.strictValidation),m(),O(t.saveInProgress?-1:3),m(),O(t.saveInProgress?4:-1)}}function nse(e,i){if(e&1){let t=se();b(0,"button",36),Q("click",function(){G(t);let r=H();return Y(r.openFullConfigEditor())}),A(1),D(2,"translate"),f()}e&2&&(m(),ie(" ",B(2,1,"plugins.settings.label_open_config_editor")," "))}var Z_=(()=>{class e{$activeModal=j(Ct);$api=j(Ze);$cb=j(Wo);$cdr=j(Gs);$md=j(Sv);$plugin=j(Vr);$router=j(Ts);$settings=j(_t);$toastr=j(nt);$translate=j(ot);isDebugModeEnabled=this.$settings.isFeatureEnabled("childBridgeDebugMode");isMatterSupported=this.$settings.isFeatureEnabled("matterSupport");plugin;schema;pluginAlias;pluginType;loading=!0;canConfigure=!1;show="";pluginConfig;currentBlock;currentBlockIndex=null;saveInProgress=!1;isFirstSave=!1;monacoEditor;formBlocksValid={};formIsValid=!0;strictValidation=!1;editorOptions;get arrayKey(){return this.pluginType==="accessory"?"accessories":"platforms"}ngOnInit(){this.editorOptions={language:"json",theme:this.$settings.actualLightingMode==="dark"?"vs-dark":"vs-light"},this.strictValidation=this.schema?.strictValidation||!1,this.$md.detect.mobile()?(this.loading=!1,this.canConfigure=!1):this.loadPluginAlias()}onEditorInit(t){return ue(this,null,function*(){window.editor=t,this.monacoEditor=t,this.setupSchemaValidation(),this.monacoEditor.onDidChangeModelContent(()=>setTimeout(()=>this.onValidationChange(),300)),window.monaco.editor.onDidChangeMarkers(r=>{let n=this.monacoEditor.getModel()?.uri;n&&r.some(l=>l.toString()===n.toString())&&this.onValidationChange()}),yield this.monacoEditor.getModel().setValue(this.currentBlock),yield this.monacoEditor.getAction("editor.action.formatDocument").run()})}ngOnDestroy(){try{if(window.editor&&window.editor.dispose&&(window.editor.dispose(),window.editor=void 0),window.monaco){let s=`http://plugin/${this.schema?.pluginAlias||this.pluginAlias}/config.json`,n=(window.monaco.languages.json.jsonDefaults.diagnosticsOptions.schemas||[]).filter(l=>l.uri!==s);window.monaco.languages.json.jsonDefaults.setDiagnosticsOptions({validate:!0,allowComments:!1,schemas:n})}this.monacoEditor&&this.monacoEditor.dispose()}catch{}}setupSchemaValidation(){let t=this.schema?.schema;t||(t=this.createBasicSchema());let r=`http://plugin/${this.schema?.pluginAlias||this.pluginAlias}/config.json`,n=tp(this.$translate,{isDebugModeEnabled:this.isDebugModeEnabled,isMatterSupported:this.isMatterSupported}),c=[...t.required||[]];this.pluginType==="platform"?(c.includes("platform")||c.push("platform"),t.properties?.platform?t.properties.platform.const=this.pluginAlias:t.properties=qe(fe({},t.properties),{platform:{type:"string",title:"Platform Name",description:"This is used by Homebridge to identify which plugin this platform belongs to.",const:this.pluginAlias}})):(c.includes("accessory")||c.push("accessory"),c.includes("name")||c.push("name"),t.properties?.accessory?t.properties.accessory.const=this.pluginAlias:t.properties=qe(fe({},t.properties),{accessory:{type:"string",title:this.$translate.instant("child_bridge.config.accessory"),description:"This is used by Homebridge to identify which plugin this accessory belongs to.",const:this.pluginAlias}})),window.monaco.languages.json.jsonDefaults.setDiagnosticsOptions({validate:!0,allowComments:!1,schemas:[{uri:r,fileMatch:["*"],schema:qe(fe({},t),{required:c,properties:qe(fe({},t.properties),{_bridge:n})})}]})}createBasicSchema(){let t=tp(this.$translate,{isDebugModeEnabled:this.isDebugModeEnabled,isMatterSupported:this.isMatterSupported});return this.pluginType==="platform"?{type:"object",required:["platform"],title:this.$translate.instant("plugins.button_settings"),properties:{platform:{type:"string",title:"Platform Name",description:"This is used by Homebridge to identify which plugin this platform belongs to.",not:{enum:["config"]}},name:{type:"string",title:this.$translate.instant("accessories.name"),description:"The name of the platform."},_bridge:t}}:{type:"object",required:["accessory","name"],title:this.$translate.instant("plugins.button_settings"),properties:{accessory:{type:"string",title:this.$translate.instant("child_bridge.config.accessory"),description:"This is used by Homebridge to identify which plugin this accessory belongs to."},name:{type:"string",title:this.$translate.instant("accessories.name"),description:"The name of the accessory."},_bridge:t}}}isJsonValid(){if(!this.monacoEditor)return!0;let t=this.monacoEditor.getModel();if(!t)return!0;let s=window.monaco.editor.getModelMarkers({resource:t.uri}),r=window.monaco;return!s.filter(l=>l.severity===r.MarkerSeverity.Error||l.severity===r.MarkerSeverity.Warning).length}updateOverallValidation(){this.formIsValid=Object.values(this.formBlocksValid).every(t=>t)}onValidationChange(){this.currentBlockIndex!==null&&this.monacoEditor&&(this.formBlocksValid[this.currentBlockIndex]=this.isJsonValid(),this.updateOverallValidation(),this.$cdr.detectChanges())}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){if(this.currentBlockIndex!==null){if(!this.saveCurrentBlock())return;this.formBlocksValid[this.currentBlockIndex]=this.isJsonValid()}this.show=`configBlock.${t}`,this.currentBlockIndex=t,this.currentBlock=JSON.stringify(this.pluginConfig[this.currentBlockIndex],null,4),t in this.formBlocksValid||(this.formBlocksValid[t]=!0),this.updateOverallValidation(),setTimeout(()=>this.onValidationChange(),150)}removeBlock(t){let s=this.pluginConfig[t],r=this.pluginConfig.findIndex(n=>n===s);r>-1&&this.pluginConfig.splice(r,1),this.currentBlockIndex=null,this.currentBlock=void 0,this.show=""}save(){return ue(this,null,function*(){if(this.saveInProgress=!0,!this.saveCurrentBlock()){this.saveInProgress=!1;return}try{let t=yield Te(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}this.$activeModal.close(),yield this.$cb.openCorrectRestartModalForPlugin(this.plugin.name)}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.initializeValidationState(),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(),s;t.charAt(0)==='"'&&t.charAt(t.length-1)==="]"&&(t=`{${t}}`);try{s=Qz.default.parse(t)}catch(n){return console.error(n),this.$toastr.error(this.$translate.instant("config.config_invalid_json"),this.$translate.instant("toast.title_error")),!1}if(Array.isArray(s)||typeof s!="object")return this.$toastr.error(this.$translate.instant("plugins.config.must_be_object"),this.$translate.instant("toast.title_error")),!1;if(!s[this.pluginType]&&Array.isArray(s[this.arrayKey])&&s[this.arrayKey].length&&Object.keys(s).length===1&&(s=s[this.arrayKey][0]),this.pluginType==="accessory"&&(!s.name||typeof s.name!="string"))return this.$toastr.error(this.$translate.instant("plugins.config.name_property"),this.$translate.instant("toast.title_error")),s.name="",this.monacoEditor.getModel().setValue(JSON.stringify(s,null,4)),!1;let r=this.pluginConfig[this.currentBlockIndex];Object.keys(r).forEach(n=>delete r[n]),Object.assign(r,s),r[this.pluginType]=this.pluginAlias}return!0}initializeValidationState(){this.formBlocksValid={};for(let t=0;t<this.pluginConfig.length;t+=1)this.formBlocksValid[t]=!0;this.updateOverallValidation()}static \u0275fac=function(s){return new(s||e)};static \u0275cmp=ve({type:e,selectors:[["ng-component"]],inputs:{plugin:"plugin",schema:"schema"},decls:20,vars:16,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"],[1,"plugin-md",3,"data"],[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"],[1,"btn","btn-primary"],[1,"fa","fa-cog","fa-spin",2,"font-size","75px"],["ngbAccordion","",3,"closeOthers"],[1,"card",3,"ngbAccordionItem","collapsed","id"],[1,"mt-3"],["ngbAccordionHeader","",1,"card-header"],[1,"d-flex","align-items-center","justify-content-between"],[1,"m-0","py-2","ps-1"],["container","modal","placement","left","triggers","hover",1,"fa","fa-xl",3,"ngClass","ngbTooltip","openDelay"],["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-2",3,"ngbTooltip","openDelay"],["ngbAccordionToggle","","container","modal","triggers","hover",1,"btn","btn-primary","m-0","ms-2","me-2",3,"click","ngbTooltip","openDelay"],[1,"fa","fa-edit"],["container","modal","triggers","hover",1,"btn","btn-danger","m-0","ms-2",3,"click","ngbTooltip","openDelay"],[1,"fa","fa-trash"],["container","modal","placement","top","triggers","hover",1,"fa","fa-xl","me-2",3,"ngClass","ngbTooltip","openDelay"],["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-spinner","fa-pulse"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant","me-2",3,"click"],[1,"fa","fa-plus"],[1,"btn","btn-primary",3,"click"]],template:function(s,r){s&1&&(b(0,"div",0)(1,"div",1)(2,"h5",2),A(3),f(),b(4,"button",3),D(5,"translate"),Q("click",function(){return r.closeModal()}),f()(),b(6,"div",4),U(7,Kie,2,0,"div",5),U(8,Wie,4,6,"div",6),U(9,Gie,2,3,"markdown",7),U(10,ese,4,2),f(),b(11,"div",8)(12,"div",9)(13,"button",10),Q("click",function(){return r.closeModal()}),A(14),D(15,"translate"),f()(),R(16,"div",11),b(17,"div",12),U(18,ose,5,5),U(19,nse,3,3,"button",13),f()()()),s&2&&(m(3),vr("",r.plugin.displayName||r.plugin.name," - ",r.pluginType),m(),S("disabled",r.saveInProgress),ge("aria-label",B(5,12,"form.button_close")),m(3),O(r.loading?7:-1),m(),O(!r.loading&&!r.canConfigure?8:-1),m(),O(r.schema!=null&&r.schema.headerDisplay?9:-1),m(),O(!r.loading&&r.canConfigure?10:-1),m(3),S("disabled",r.saveInProgress),m(),ie(" ",B(15,14,"form.button_close")," "),m(4),O(r.canConfigure?18:-1),m(),O(r.canConfigure?-1:19))},dependencies:[wi,$c,Lc,qc,Ir,Fc,Oc,yv,us,ei,Ji,Vc,Lo,qo,$o,xt,Hu],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 eA=e=>({link:e}),Q_=e=>({"is-invalid":e}),tA=(e,i)=>({"green-text":e,"grey-text":i});function ase(e,i){if(e&1){let t=se();b(0,"button",14),D(1,"translate"),Q("click",function(){G(t);let r=H();return Y(r.closeModal())}),f()}if(e&2){let t=H();S("disabled",t.saveInProgress),ge("aria-label",B(1,2,"form.button_close"))}}function lse(e,i){e&1&&(b(0,"div",6),R(1,"i",15),f())}function cse(e,i){e&1&&(b(0,"li"),A(1),D(2,"translate"),f()),e&2&&(m(),re(B(2,1,"child_bridge.bridges_paired_2")))}function dse(e,i){if(e&1&&(b(0,"li"),A(1),D(2,"translate"),f(),U(3,cse,3,3,"li")),e&2){let t=H(2);m(),re(B(2,2,"child_bridge.bridges_paired")),m(2),O(t.configBlocks.length===1&&!t.deviceInfo.get(t.configBlocks[0]._bridge==null?null:t.configBlocks[0]._bridge.username)&&t.originalBridges.length===0?3:-1)}}function use(e,i){if(e&1&&(b(0,"option",30),A(1),f()),e&2){let t=i.$implicit,s=i.$index;S("value",s),m(),re(t.name||t.platform||t.accessory)}}function gse(e,i){if(e&1){let t=se();b(0,"ul",22)(1,"li",26),A(2),D(3,"translate"),f(),b(4,"li",24)(5,"label",27),A(6),D(7,"translate"),f(),b(8,"div",28)(9,"select",29),tt("ngModelChange",function(r){G(t);let n=H(3);return et(n.selectedBlock,r)||(n.selectedBlock=r),Y(r)}),Q("change",function(){G(t);let r=H(3);return Y(r.onBlockChange(r.selectedBlock))}),Zt(10,use,2,2,"option",30,Jt),f()()()()}if(e&2){let t=H(3);m(2),re(B(3,3,"form.label.changes_kept")),m(4),ie(" ",B(7,5,"child_bridge.config.accessory")," "),m(3),Xe("ngModel",t.selectedBlock),m(),Qt(t.configBlocks)}}function pse(e,i){if(e&1&&A(0),e&2){let t=H().$implicit;vr(" ",t.name," \xB7 ",t.username," ")}}function mse(e,i){if(e&1&&A(0),e&2){let t=H().$implicit;ie(" ",t.username," ")}}function hse(e,i){if(e&1&&(b(0,"option",30),U(1,pse,1,2)(2,mse,1,1),f()),e&2){let t=i.$implicit;S("value",t.username),m(),O(t.name?1:2)}}function _se(e,i){if(e&1){let t=se();b(0,"li",24)(1,"label",31),A(2),D(3,"translate"),f(),b(4,"div",28)(5,"select",32,0),Q("change",function(){G(t);let r=Ec(6),n=H(3);return Y(n.onLinkBridgeChange(r.value))}),b(7,"option",30),A(8),D(9,"translate"),f(),Zt(10,hse,3,2,"option",30,Jt),f()()()}if(e&2){let t=H(3);m(2),re(B(3,2,"child_bridge.config.or_link")),m(6),re(B(9,4,"child_bridge.config.select_existing")),m(2),Qt(t.bridgesAvailableForLink)}}function fse(e,i){e&1&&(b(0,"li",24)(1,"label",33),A(2,"Child Bridge"),f(),b(3,"div",34),A(4),D(5,"translate"),f()()),e&2&&(m(4),ie(" ",B(5,1,"child_bridge.config.prevent")," "))}function bse(e,i){if(e&1){let t=se();b(0,"li",25)(1,"span",8),A(2),D(3,"translate"),f(),b(4,"div",35)(5,"input",36),Q("change",function(){G(t);let r=H(3);return Y(r.toggleExternalBridge(r.configBlocks[r.selectedBlock],r.enabledBlocks[r.selectedBlock],r.selectedBlock))}),tt("ngModelChange",function(r){G(t);let n=H(3);return et(n.enabledBlocks[n.selectedBlock],r)||(n.enabledBlocks[n.selectedBlock]=r),Y(r)}),f(),R(6,"label",37),f()()}if(e&2){let t=H(3);m(2),ie(" ",B(3,4,t.currentlySelectedLink?"child_bridge.config.or_link":"child_bridge.config.use")," "),m(3),S("id","toggleExternalBridgeInput_"+t.selectedBlock),Xe("ngModel",t.enabledBlocks[t.selectedBlock]),m(),S("for","toggleExternalBridgeInput_"+t.selectedBlock)}}function yse(e,i){if(e&1&&(b(0,"li",24)(1,"label",33),A(2),D(3,"translate"),f(),b(4,"div",38),A(5),f()()),e&2){let t=H(3);m(2),re(B(3,2,"users.label_username")),m(3),ie(" ",(t.currentlySelectedLink==null?null:t.currentlySelectedLink.username)||(t.configBlocks[t.selectedBlock]._bridge==null?null:t.configBlocks[t.selectedBlock]._bridge.username)," ")}}function vse(e,i){if(e&1){let t=se();b(0,"li",25)(1,"span",8),A(2),D(3,"translate"),b(4,"code"),A(5,"-D"),f()(),b(6,"div",35)(7,"input",46),D(8,"translate"),tt("ngModelChange",function(r){G(t);let n=H(4);return et(n.configBlocks[n.selectedBlock]._bridge.debugModeEnabled,r)||(n.configBlocks[n.selectedBlock]._bridge.debugModeEnabled=r),Y(r)}),f(),R(9,"label",37),f()()}if(e&2){let t=H(4);m(2),ie("",B(3,5,"child_bridge.config.debug")," "),m(5),S("id","homebridgeDebugMode_"+t.selectedBlock),Xe("ngModel",t.configBlocks[t.selectedBlock]._bridge.debugModeEnabled),ge("aria-label",B(8,7,"settings.startup.debug")),m(2),S("for","homebridgeDebugMode_"+t.selectedBlock)}}function wse(e,i){if(e&1){let t=se();b(0,"li",24)(1,"label",33),A(2),D(3,"translate"),f(),b(4,"div",28)(5,"input",39),tt("ngModelChange",function(r){G(t);let n=H(3);return et(n.configBlocks[n.selectedBlock]._bridge.name,r)||(n.configBlocks[n.selectedBlock]._bridge.name=r),Y(r)}),f()()(),b(6,"li",24)(7,"label",33),A(8),D(9,"translate"),f(),b(10,"div",28)(11,"input",40),D(12,"translate"),tt("ngModelChange",function(r){G(t);let n=H(3);return et(n.configBlocks[n.selectedBlock]._bridge.manufacturer,r)||(n.configBlocks[n.selectedBlock]._bridge.manufacturer=r),Y(r)}),f()()(),b(13,"li",24)(14,"label",33),A(15),D(16,"translate"),f(),b(17,"div",28)(18,"input",40),D(19,"translate"),tt("ngModelChange",function(r){G(t);let n=H(3);return et(n.configBlocks[n.selectedBlock]._bridge.model,r)||(n.configBlocks[n.selectedBlock]._bridge.model=r),Y(r)}),f()()(),b(20,"li",24)(21,"label",33),A(22),D(23,"translate"),f(),b(24,"div",28)(25,"input",40),D(26,"translate"),tt("ngModelChange",function(r){G(t);let n=H(3);return et(n.configBlocks[n.selectedBlock]._bridge.firmwareRevision,r)||(n.configBlocks[n.selectedBlock]._bridge.firmwareRevision=r),Y(r)}),f()()(),U(27,vse,10,9,"li",25),b(28,"li",24)(29,"label",33)(30,"span",41),A(31,"DEBUG"),f(),R(32,"br")(33,"small",42),D(34,"translate"),f(),b(35,"div",28)(36,"input",43),tt("ngModelChange",function(r){G(t);let n=H(3);return et(n.configBlocks[n.selectedBlock]._bridge.env.DEBUG,r)||(n.configBlocks[n.selectedBlock]._bridge.env.DEBUG=r),Y(r)}),f()()(),b(37,"li",24)(38,"label",33)(39,"span",41),A(40,"NODE_OPTIONS"),f(),R(41,"br"),b(42,"small",44),A(43),D(44,"translate"),f()(),b(45,"div",28)(46,"input",45),tt("ngModelChange",function(r){G(t);let n=H(3);return et(n.configBlocks[n.selectedBlock]._bridge.env.NODE_OPTIONS,r)||(n.configBlocks[n.selectedBlock]._bridge.env.NODE_OPTIONS=r),Y(r)}),f()()()}if(e&2){let t=H(3);m(2),re(B(3,17,"child_bridge.config.name")),m(3),Xe("ngModel",t.configBlocks[t.selectedBlock]._bridge.name),S("ngClass",vi(36,Q_,t.getHapNameValidationError(t.selectedBlock))),m(3),re(B(9,19,"child_bridge.config.manufacturer")),m(3),S("placeholder",B(12,21,"form.optional")),Xe("ngModel",t.configBlocks[t.selectedBlock]._bridge.manufacturer),m(4),re(B(16,23,"child_bridge.config.model")),m(3),S("placeholder",B(19,25,"form.optional")),Xe("ngModel",t.configBlocks[t.selectedBlock]._bridge.model),m(4),re(B(23,27,"child_bridge.config.firmware")),m(3),S("placeholder",B(26,29,"form.optional")),Xe("ngModel",t.configBlocks[t.selectedBlock]._bridge.firmwareRevision),m(2),O(t.canShowBridgeDebug?27:-1),m(6),S("innerHTML",zt(34,31,"settings.service.debug_tooltip",vi(38,eA,t.linkDebug)),Oe),m(3),Xe("ngModel",t.configBlocks[t.selectedBlock]._bridge.env.DEBUG),m(7),re(B(44,34,"settings.service.node_tooltip")),m(3),Xe("ngModel",t.configBlocks[t.selectedBlock]._bridge.env.NODE_OPTIONS)}}function kse(e,i){e&1&&(b(0,"li",51)(1,"div",53)(2,"div",54)(3,"div")(4,"div",55),R(5,"i",56),f(),b(6,"div",57),A(7),D(8,"translate"),f()()()()()),e&2&&(m(7),re(B(8,1,"child_bridge.return_to_pair")))}function Hse(e,i){e&1&&(b(0,"span"),A(1),D(2,"translate"),f()),e&2&&(m(),ie(" \xB7 ",B(2,1,"status.code_scan")," "))}function Sse(e,i){if(e&1){let t=se();b(0,"li",25)(1,"span",8),A(2),D(3,"translate"),f(),b(4,"div",35)(5,"input",62),D(6,"translate"),Q("change",function(){G(t);let r=H(5);return Y(r.toggleHideUnpairing(r.configBlocks[r.selectedBlock]._bridge==null?null:r.configBlocks[r.selectedBlock]._bridge.username,"hap"))}),f(),R(7,"label",37),f()()}if(e&2){let t=H(5);m(2),re(B(3,5,"child_bridge.config.hide_pairing_alert")),m(3),S("id","toggleHideHapUnpairing_"+t.selectedBlock)("checked",t.isUnpairingHidden(t.configBlocks[t.selectedBlock]._bridge==null?null:t.configBlocks[t.selectedBlock]._bridge.username,"hap")),ge("aria-label",B(6,7,"child_bridge.config.hide_pairing_alert")),m(2),S("for","toggleHideHapUnpairing_"+t.selectedBlock)}}function Cse(e,i){if(e&1&&(b(0,"li",51)(1,"div",53),R(2,"app-qrcode",58),b(3,"p",59),A(4),f(),b(5,"p",60),R(6,"i",61),A(7),D(8,"translate"),U(9,Hse,3,3,"span"),f()()(),U(10,Sse,8,9,"li",25)),e&2){let t,s,r,n,l,c,u=H(4);m(2),S("data",(t=u.deviceInfo.get(u.configBlocks[u.selectedBlock]._bridge==null?null:u.configBlocks[u.selectedBlock]._bridge.username))==null?null:t._setupCode),m(2),ie(" ",(s=u.deviceInfo.get(u.configBlocks[u.selectedBlock]._bridge==null?null:u.configBlocks[u.selectedBlock]._bridge.username))==null?null:s.pincode," "),m(2),S("ngClass",io(8,tA,(r=u.deviceInfo.get(u.configBlocks[u.selectedBlock]._bridge==null?null:u.configBlocks[u.selectedBlock]._bridge.username))==null?null:r._isPaired,!((r=u.deviceInfo.get(u.configBlocks[u.selectedBlock]._bridge==null?null:u.configBlocks[u.selectedBlock]._bridge.username))!=null&&r._isPaired))),m(),ie(" ",B(8,6,(n=u.deviceInfo.get(u.configBlocks[u.selectedBlock]._bridge==null?null:u.configBlocks[u.selectedBlock]._bridge.username))!=null&&n._isPaired?"status.widget.qr_paired":"status.widget.qr_unpaired")," "),m(2),O((l=u.deviceInfo.get(u.configBlocks[u.selectedBlock]._bridge==null?null:u.configBlocks[u.selectedBlock]._bridge.username))!=null&&l._isPaired?-1:9),m(),O((c=u.deviceInfo.get(u.configBlocks[u.selectedBlock]._bridge==null?null:u.configBlocks[u.selectedBlock]._bridge.username))!=null&&c._isPaired?-1:10)}}function xse(e,i){e&1&&(b(0,"span"),A(1),D(2,"translate"),f()),e&2&&(m(),ie(" \xB7 ",B(2,1,"status.code_scan")," "))}function Ise(e,i){if(e&1){let t=se();b(0,"li",25)(1,"span",8),A(2),D(3,"translate"),f(),b(4,"div",35)(5,"input",62),D(6,"translate"),Q("change",function(){G(t);let r=H(7);return Y(r.toggleHideUnpairing(r.configBlocks[r.selectedBlock]._bridge==null?null:r.configBlocks[r.selectedBlock]._bridge.username,"matter"))}),f(),R(7,"label",37),f()()}if(e&2){let t=H(7);m(2),re(B(3,5,"child_bridge.config.hide_pairing_alert")),m(3),S("id","toggleHideMatterUnpairing_"+t.selectedBlock)("checked",t.isUnpairingHidden(t.configBlocks[t.selectedBlock]._bridge==null?null:t.configBlocks[t.selectedBlock]._bridge.username,"matter")),ge("aria-label",B(6,7,"child_bridge.config.hide_pairing_alert")),m(2),S("for","toggleHideMatterUnpairing_"+t.selectedBlock)}}function Tse(e,i){if(e&1&&(b(0,"li",51)(1,"div",53),R(2,"app-qrcode",58),b(3,"p",59),A(4),f(),b(5,"p",60),R(6,"i",61),A(7),D(8,"translate"),U(9,xse,3,3,"span"),f()()(),U(10,Ise,8,9,"li",25)),e&2){let t,s,r,n,l,c,u=H(6);m(2),S("data",(t=u.matterDeviceInfo.get(u.configBlocks[u.selectedBlock]._bridge==null?null:u.configBlocks[u.selectedBlock]._bridge.username))==null?null:t.setupUri),m(2),ie(" ",(s=u.matterDeviceInfo.get(u.configBlocks[u.selectedBlock]._bridge==null?null:u.configBlocks[u.selectedBlock]._bridge.username))==null?null:s.pin," "),m(2),S("ngClass",io(8,tA,(r=u.matterDeviceInfo.get(u.configBlocks[u.selectedBlock]._bridge==null?null:u.configBlocks[u.selectedBlock]._bridge.username))==null?null:r.commissioned,!((r=u.matterDeviceInfo.get(u.configBlocks[u.selectedBlock]._bridge==null?null:u.configBlocks[u.selectedBlock]._bridge.username))!=null&&r.commissioned))),m(),ie(" ",B(8,6,(n=u.matterDeviceInfo.get(u.configBlocks[u.selectedBlock]._bridge==null?null:u.configBlocks[u.selectedBlock]._bridge.username))!=null&&n.commissioned?"status.widget.qr_paired":"status.widget.qr_unpaired")," "),m(2),O((l=u.matterDeviceInfo.get(u.configBlocks[u.selectedBlock]._bridge==null?null:u.configBlocks[u.selectedBlock]._bridge.username))!=null&&l.commissioned?-1:9),m(),O((c=u.matterDeviceInfo.get(u.configBlocks[u.selectedBlock]._bridge==null?null:u.configBlocks[u.selectedBlock]._bridge.username))!=null&&c.commissioned?-1:10)}}function Pse(e,i){e&1&&(b(0,"li",51)(1,"div",53)(2,"div",68)(3,"div")(4,"div",55),R(5,"i",56),f(),b(6,"div",57),A(7),D(8,"translate"),f()()()()()),e&2&&(m(7),re(B(8,1,"child_bridge.return_to_pair")))}function zse(e,i){if(e&1){let t=se();b(0,"li",65)(1,"ul",66)(2,"li"),A(3),D(4,"translate"),f(),b(5,"li"),A(6),D(7,"translate"),f(),b(8,"li"),A(9),D(10,"translate"),f()()(),U(11,Tse,11,11),U(12,Pse,9,3,"li",51),b(13,"li",24)(14,"label",33),A(15),D(16,"translate"),f(),b(17,"div",28)(18,"input",67),tt("ngModelChange",function(r){G(t);let n=H(5);return et(n.configBlocks[n.selectedBlock]._bridge.matter.port,r)||(n.configBlocks[n.selectedBlock]._bridge.matter.port=r),Y(r)}),f()()()}if(e&2){let t,s,r=H(5);m(3),re(B(4,8,"child_bridge.config.matter_note_1")),m(3),re(B(7,10,"child_bridge.config.matter_note_2")),m(3),re(B(10,12,"child_bridge.config.matter_note_3")),m(2),O((t=r.matterDeviceInfo.get(r.configBlocks[r.selectedBlock]._bridge==null?null:r.configBlocks[r.selectedBlock]._bridge.username))!=null&&t.setupUri?11:-1),m(),O(r.matterDeviceInfo.get(r.configBlocks[r.selectedBlock]._bridge==null?null:r.configBlocks[r.selectedBlock]._bridge.username)&&!((s=r.matterDeviceInfo.get(r.configBlocks[r.selectedBlock]._bridge==null?null:r.configBlocks[r.selectedBlock]._bridge.username))!=null&&s.setupUri)?12:-1),m(3),re(B(16,14,"settings.matter.port")),m(3),Xe("ngModel",r.configBlocks[r.selectedBlock]._bridge.matter.port),S("ngClass",vi(16,Q_,r.getMatterPortValidationError(r.selectedBlock)))}}function Ase(e,i){if(e&1){let t=se();b(0,"ul",23)(1,"li",25)(2,"label",33),R(3,"i",63),A(4),D(5,"translate"),b(6,"span",64),A(7),D(8,"translate"),f()(),b(9,"div",35)(10,"input",36),Q("change",function(){G(t);let r=H(4);return Y(r.toggleMatterBridge(r.configBlocks[r.selectedBlock],r.matterEnabledBlocks[r.selectedBlock],r.selectedBlock))}),tt("ngModelChange",function(r){G(t);let n=H(4);return et(n.matterEnabledBlocks[n.selectedBlock],r)||(n.matterEnabledBlocks[n.selectedBlock]=r),Y(r)}),f(),R(11,"label",37),f()(),U(12,zse,19,18),f()}if(e&2){let t=H(4);m(4),ie(" ",B(5,6,"matter_bridge.config.use")," "),m(3),re(B(8,8,"common.labels.beta")),m(3),S("id","toggleMatterBridgeInput_"+t.selectedBlock),Xe("ngModel",t.matterEnabledBlocks[t.selectedBlock]),m(),S("for","toggleMatterBridgeInput_"+t.selectedBlock),m(),O(t.matterEnabledBlocks[t.selectedBlock]&&(t.configBlocks[t.selectedBlock]._bridge!=null&&t.configBlocks[t.selectedBlock]._bridge.matter)&&(t.configBlocks[t.selectedBlock]._bridge!=null&&t.configBlocks[t.selectedBlock]._bridge.username)?12:-1)}}function jse(e,i){if(e&1){let t=se();b(0,"ul",23)(1,"li",25)(2,"span",8),R(3,"i",47),A(4),D(5,"translate"),f(),b(6,"div",48),R(7,"input",49)(8,"label",50),f()(),U(9,kse,9,3,"li",51),U(10,Cse,11,11),b(11,"li",24)(12,"label",33),A(13),D(14,"translate"),f(),b(15,"div",28)(16,"input",52),tt("ngModelChange",function(r){G(t);let n=H(3);return et(n.configBlocks[n.selectedBlock]._bridge.port,r)||(n.configBlocks[n.selectedBlock]._bridge.port=r),Y(r)}),f()()()(),U(17,Ase,13,10,"ul",23)}if(e&2){let t=H(3);m(4),ie(" ",B(5,11,"child_bridge.config.enable_hap")," "),m(3),S("id","toggleHapInput_"+t.selectedBlock)("checked",!0)("disabled",!0),m(),S("for","toggleHapInput_"+t.selectedBlock),m(),O(t.configBlocks[t.selectedBlock]._bridge!=null&&t.configBlocks[t.selectedBlock]._bridge.username&&t.deviceInfo.get(t.configBlocks[t.selectedBlock]._bridge==null?null:t.configBlocks[t.selectedBlock]._bridge.username)===!1?9:-1),m(),O(t.deviceInfo.get(t.configBlocks[t.selectedBlock]._bridge==null?null:t.configBlocks[t.selectedBlock]._bridge.username)?10:-1),m(3),re(B(14,13,"settings.matter.port")),m(3),Xe("ngModel",t.configBlocks[t.selectedBlock]._bridge.port),S("ngClass",vi(15,Q_,t.getHapPortValidationError(t.selectedBlock))),m(),O(t.isMatterSupported?17:-1)}}function Dse(e,i){if(e&1&&(b(0,"li",24)(1,"label",33),A(2),D(3,"translate"),f(),b(4,"div",38),A(5),f()(),b(6,"li",24)(7,"label",33),A(8),D(9,"translate"),f(),b(10,"div",38),A(11),f()()),e&2){let t=H(4);m(2),re(B(3,4,"settings.matter.port")),m(3),ie(" ",t.currentlySelectedLink.port," "),m(3),re(B(9,6,"child_bridge.config.name")),m(3),ie(" ",t.currentlySelectedLink.name," ")}}function Nse(e,i){if(e&1&&(b(0,"ul",23)(1,"li",26),A(2,"Using existing child bridge configuration"),f(),U(3,Dse,12,8),f()),e&2){let t=H(3);m(3),O(!(t.configBlocks[t.selectedBlock]._bridge!=null&&t.configBlocks[t.selectedBlock]._bridge.username)||t.deviceInfo.get(t.configBlocks[t.selectedBlock]._bridge==null?null:t.configBlocks[t.selectedBlock]._bridge.username)!==!1?3:-1)}}function Mse(e,i){if(e&1&&(U(0,gse,12,7,"ul",22),b(1,"ul",23),U(2,_se,12,6,"li",24),U(3,fse,6,3,"li",24),U(4,bse,7,6,"li",25),U(5,yse,6,4,"li",24),U(6,wse,47,40),f(),U(7,jse,18,17),U(8,Nse,4,1,"ul",23)),e&2){let t=H(2);O(t.configBlocks.length>1&&!t.isPlatform?0:-1),m(2),O(!(t.configBlocks[t.selectedBlock]._bridge!=null&&t.configBlocks[t.selectedBlock]._bridge.username)&&t.bridgesAvailableForLink.length&&!t.currentBridgeHasLinks?2:-1),m(),O(t.currentBridgeHasLinks?3:-1),m(),O(t.currentBridgeHasLinks?-1:4),m(),O((t.currentlySelectedLink||t.configBlocks[t.selectedBlock]._bridge!=null&&t.configBlocks[t.selectedBlock]._bridge.username)&&(t.currentlySelectedLink||!t.currentBridgeHasLinks)?5:-1),m(),O(!t.currentlySelectedLink&&(t.configBlocks[t.selectedBlock]._bridge!=null&&t.configBlocks[t.selectedBlock]._bridge.username)?6:-1),m(),O(!t.currentlySelectedLink&&(t.configBlocks[t.selectedBlock]._bridge!=null&&t.configBlocks[t.selectedBlock]._bridge.username)?7:-1),m(),O(t.currentlySelectedLink?8:-1)}}function Rse(e,i){e&1&&(A(0),D(1,"translate")),e&2&&ie(" ",B(1,1,"child_bridge.confirm_delete_2")," ")}function Ese(e,i){if(e&1&&(b(0,"li"),R(1,"i",70),A(2),b(3,"span",44),A(4," \xB7 "),f(),b(5,"span",71),A(6),f()()),e&2){let t,s=i.$implicit,r=H(3);m(2),ie(" ",s.bridgeName||((t=r.deviceInfo.get(s.id))==null?null:t.displayName)," "),m(4),re(s.id)}}function Bse(e,i){if(e&1&&(b(0,"li"),R(1,"i",72),A(2),b(3,"span",44),A(4," \xB7 "),f(),b(5,"span",71),A(6),f()()),e&2){let t=i.$implicit;m(2),ie(" ",t.name," "),m(4),re(t.username)}}function Use(e,i){if(e&1&&(b(0,"ngb-alert",19)(1,"p"),A(2),D(3,"translate"),U(4,Rse,2,3),f(),b(5,"div",10)(6,"ul",69),Zt(7,Ese,7,2,"li",null,Jt),Zt(9,Bse,7,2,"li",null,Jt),f()()()),e&2){let t=H(2);S("dismissible",!1),m(2),ie(" ",B(3,3,"child_bridge.confirm_delete_1")," "),m(2),O(t.deletingPairedBridge?4:-1),m(3),Qt(t.deleteBridges),m(2),Qt(t.deleteMatterBridges)}}function Ose(e,i){e&1&&(b(0,"ngb-alert",20),A(1),D(2,"translate"),f()),e&2&&(S("dismissible",!1),m(),ie(" ",B(2,2,"child_bridge.must_configure_plugin")," "))}function Fse(e,i){if(e&1){let t=se();b(0,"ngb-alert",21)(1,"div",17),A(2),D(3,"translate"),D(4,"translate"),f(),b(5,"button",73),Q("click",function(){G(t);let r=H(2);return Y(r.openFullConfigEditor())}),A(6),D(7,"translate"),f()()}e&2&&(S("dismissible",!1),m(2),vr(" ",B(3,4,"plugins.settings.message_manual_config_required")," ",B(4,6,"plugins.settings.message_consult_documentation")," "),m(4),ie(" ",B(7,8,"plugins.settings.label_open_config_editor")," "))}function Vse(e,i){if(e&1){let t=se();b(0,"div",10)(1,"img",16),Q("error",function(){G(t);let r=H();return Y(r.handleIconError())}),f()(),b(2,"ul",17),R(3,"li",18),D(4,"translate"),U(5,dse,4,4),f(),U(6,Mse,9,8),U(7,Use,11,5,"ngb-alert",19),U(8,Ose,3,4,"ngb-alert",20),U(9,Fse,8,10,"ngb-alert",21)}if(e&2){let t=H();m(),S("src",t.plugin.icon,Wy),m(2),S("innerHTML",zt(4,7,"child_bridge.about",vi(10,eA,t.linkChildBridges)),Oe),m(2),O(t.configBlocks.length?5:-1),m(),O(t.canConfigure&&t.configBlocks.length?6:-1),m(),O(t.deleteBridges.length||t.deleteMatterBridges.length?7:-1),m(),O(!t.configBlocks.length&&t.canConfigure?8:-1),m(),O(t.canConfigure?-1:9)}}function qse(e,i){if(e&1){let t=se();b(0,"button",74),Q("click",function(){G(t);let r=H();return Y(r.closeModal())}),A(1),D(2,"translate"),f()}if(e&2){let t=H();S("disabled",t.saveInProgress),m(),ie(" ",B(2,2,"form.button_close")," ")}}function Lse(e,i){e&1&&R(0,"i",76)}function $se(e,i){if(e&1){let t=se();b(0,"button",75),Q("click",function(){G(t);let r=H();return Y(r.save())}),A(1),D(2,"translate"),U(3,Lse,1,0,"i",76),f()}if(e&2){let t=H();S("disabled",t.saveInProgress),m(),ie(" ",B(2,3,"form.button_save")," "),m(2),O(t.saveInProgress?3:-1)}}function Kse(e,i){if(e&1){let t=se();b(0,"button",77),Q("click",function(){G(t);let r=H();return Y(r.closeModal())}),A(1),D(2,"translate"),f()}e&2&&(m(),ie(" ",B(2,1,"form.button_close")," "))}function Wse(e,i){e&1&&(A(0),D(1,"translate")),e&2&&ie(" ",B(1,1,"form.button_save")," ")}function Gse(e,i){e&1&&R(0,"i",76)}function Yse(e,i){if(e&1){let t=se();b(0,"button",75),Q("click",function(){G(t);let r=H(2);return Y(r.save())}),U(1,Wse,2,3),U(2,Gse,1,0,"i",76),f()}if(e&2){let t=H(2);S("disabled",t.saveInProgress||t.loading),m(),O(t.saveInProgress?-1:1),m(),O(t.saveInProgress?2:-1)}}function Jse(e,i){if(e&1){let t=se();b(0,"button",79),Q("click",function(){G(t);let r=H(2);return Y(r.openPluginConfig())}),A(1),D(2,"translate"),f()}e&2&&(m(),ie(" ",B(2,1,"plugins.button_settings")," "))}function Zse(e,i){if(e&1&&(U(0,Yse,3,3,"button",11),U(1,Jse,3,3,"button",78)),e&2){let t=H();O(t.configBlocks.length?0:-1),m(),O(t.configBlocks.length?-1:1)}}var iA=(()=>{class e{$activeModal=j(Ct);$api=j(Ze);$modal=j(ki);$plugin=j(Vr);$router=j(Ts);$settings=j(_t);$toastr=j(nt);$translate=j(ot);plugin;schema;justInstalled=!1;loading=!0;canConfigure=!0;configBlocks=[];selectedBlock="0";isPlatform;enabledBlocks={};bridgeCache=new Map;originalBridges=[];deviceInfo=new Map;matterEnabledBlocks={};matterBridgeCache=new Map;originalMatterBridges=[];matterDeviceInfo=new Map;deleteMatterBridges=[];matterExplicitlyDisabledBeforeChildBridge=new Set;saveInProgress=!1;canShowBridgeDebug=!1;deleteBridges=[];deletingPairedBridge=!1;accessoryBridgeLinks=[];bridgesAvailableForLink=[];currentlySelectedLink=null;currentBridgeHasLinks=!1;isMatterSupported=this.$settings.isFeatureEnabled("matterSupport");defaultIcon="assets/hb-icon.png";linkChildBridges='<a href="https://github.com/homebridge/homebridge/wiki/Child-Bridges" target="_blank"><i class="fas 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-external-link-alt primary-text"></i></a>';hidePairingAlerts=new Set;ngOnInit(){return ue(this,null,function*(){yield Promise.all([this.getPluginType(),this.loadPluginConfig(),this.loadHidePairingAlerts()]),this.canShowBridgeDebug=this.$settings.isFeatureEnabled("childBridgeDebugMode"),this.loading=!1})}handleIconError(){this.plugin.icon=this.defaultIcon}onBlockChange(t){if(this.selectedBlock=t,this.currentlySelectedLink=this.accessoryBridgeLinks.find(s=>s.index===t)||null,this.currentBridgeHasLinks=this.accessoryBridgeLinks.some(s=>s.usesIndex===t),this.bridgesAvailableForLink=[],this.configBlocks[Number(t)].accessory)for(let[s,r]of Array.from(this.bridgeCache.entries()))this.enabledBlocks[s]&&!this.deleteBridges.some(n=>n.id===r.username)&&s<Number(t)&&this.bridgesAvailableForLink.push({index:s.toString(),usesIndex:t,name:r.name,port:r.port,username:r.username})}onLinkBridgeChange(t){if(t){let s=this.configBlocks.findIndex(n=>n._bridge?.username===t);this.accessoryBridgeLinks.push({index:this.selectedBlock,usesIndex:s.toString(),name:this.bridgeCache.get(s)?.name,port:this.bridgeCache.get(s)?.port,username:t}),this.currentlySelectedLink=this.accessoryBridgeLinks.find(n=>n.index===this.selectedBlock)||null,this.enabledBlocks[Number(this.selectedBlock)]=!0;let r=this.configBlocks[Number(this.selectedBlock)];r._bridge={username:t}}}getPluginType(){return ue(this,null,function*(){try{let t=yield Te(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 ue(this,null,function*(){try{this.configBlocks=yield Te(this.$api.get(`/config-editor/plugin/${encodeURIComponent(this.plugin.name)}`));for(let[s,r]of this.configBlocks.entries()){if(r._bridge&&(this.enabledBlocks[s]=!0),r._bridge&&r._bridge.username){let n=Array.from(this.bridgeCache.values()).findIndex(c=>c.username===r._bridge.username),l=n!==-1?Array.from(this.bridgeCache.values())[n]:void 0;if(l)r._bridge.env={},this.accessoryBridgeLinks.push({index:s.toString(),usesIndex:n.toString(),name:l.name,port:l.port,username:r._bridge.username});else{if(r._bridge.env=r._bridge.env||{},this.bridgeCache.set(s,r._bridge),yield this.getDeviceInfo(r._bridge.username),!r._bridge.name){let c=this.deviceInfo.get(r._bridge.username);c&&(r._bridge.name=c.displayName)}this.originalBridges.push(r._bridge)}}r._bridge&&r._bridge.matter&&(this.matterEnabledBlocks[s]=!0,this.matterBridgeCache.set(s,{port:r._bridge.matter.port}),this.originalMatterBridges.push({port:r._bridge.matter.port}),r._bridge.username&&(yield this.getMatterCommissioningInfo(r._bridge.username)))}this.justInstalled&&this.bridgeCache.size===0&&this.configBlocks.forEach((s,r)=>{this.enabledBlocks[r]=!0,this.toggleExternalBridge(s,!0,r.toString())}),this.accessoryBridgeLinks.find(s=>s.username===this.bridgeCache.get(Number(this.selectedBlock))?.username)&&(this.currentBridgeHasLinks=!0)}catch(t){this.canConfigure=!1,console.error(t)}})}toggleExternalBridge(t,s,r){return ue(this,null,function*(){if(s){let n=this.bridgeCache.get(Number(r)),l=this.matterBridgeCache.get(Number(r));if(t._bridge={username:n?n.username:this.generateUsername(),port:yield this.getUnusedPort(),name:n?.name||this.plugin.displayName||this.plugin.name,model:n?.model,manufacturer:n?.manufacturer,firmwareRevision:n?.firmwareRevision,debugModeEnabled:n?.debugModeEnabled,env:n?.env||{}},l&&!this.matterExplicitlyDisabledBeforeChildBridge.has(Number(r))&&(t._bridge.matter={port:l.port??(yield this.getUnusedMatterPort())},this.matterEnabledBlocks[Number(r)]=!0,t._bridge.username&&(this.originalMatterBridges.some(u=>u.port===l.port)?yield this.getMatterCommissioningInfo(t._bridge.username):this.matterDeviceInfo.set(t._bridge.username,{port:l.port})),t._bridge.username)){let c=t._bridge.username.replace(/[^a-z0-9]/gi,"-").replace(/-+/g,"-").replace(/^-|-$/g,"");this.deleteMatterBridges=this.deleteMatterBridges.filter(u=>u.identifier!==c)}this.deleteBridges.some(c=>c.id===t._bridge.username)&&(this.deleteBridges=this.deleteBridges.filter(c=>c.id!==t._bridge.username)),this.matterExplicitlyDisabledBeforeChildBridge.delete(Number(r)),this.bridgeCache.set(Number(r),t._bridge),yield this.getDeviceInfo(t._bridge.username)}else{if(this.enabledBlocks[Number(r)]=!1,t._bridge?.matter&&this.matterEnabledBlocks[Number(r)]&&this.matterBridgeCache.set(Number(r),{port:t._bridge.matter.port}),this.accessoryBridgeLinks.some(n=>n.index===r))this.accessoryBridgeLinks=this.accessoryBridgeLinks.filter(n=>n.index!==r),this.currentlySelectedLink=null;else{let n=this.originalBridges.find(l=>l.username===t._bridge.username);if(n&&!this.deleteBridges.some(l=>l.id===t._bridge.username)){let l=this.deviceInfo.get(t._bridge.username);this.deleteBridges.push({id:t._bridge.username,bridgeName:t._bridge.name||n.displayName,paired:l?l._isPaired:!1})}if(t._bridge?.username){let l=t._bridge.username.replace(/[^a-z0-9]/gi,"-").replace(/-+/g,"-").replace(/^-|-$/g,"");this.deleteMatterBridges.some(u=>u.identifier===l)&&this.matterExplicitlyDisabledBeforeChildBridge.add(Number(r))}if(t._bridge?.matter&&t._bridge.username&&this.originalMatterBridges.some(c=>c.port===t._bridge.matter.port)){let c=t._bridge.username.replace(/[^a-z0-9]/gi,"-").replace(/-+/g,"-").replace(/^-|-$/g,"");if(!this.deleteMatterBridges.some(u=>u.identifier===c)){let u=t._bridge.name||this.plugin.displayName||this.plugin.name;this.deleteMatterBridges.push({username:t._bridge.username,identifier:c,name:u})}}}this.matterEnabledBlocks[Number(r)]=!1,delete t._bridge}this.deletingPairedBridge=this.deleteBridges.some(n=>n.paired)})}getUnusedPort(){return ue(this,null,function*(){try{return(yield Te(this.$api.get("/server/port/new"))).port}catch{return Math.floor(Math.random()*30001+3e4)}})}getUnusedMatterPort(){return ue(this,null,function*(){try{return(yield Te(this.$api.get("/server/port/new/matter"))).port}catch{return Math.floor(Math.random()*12+5530)}})}getDeviceInfo(t){return ue(this,null,function*(){try{this.deviceInfo.set(t,yield Te(this.$api.get(`/server/pairings/${t.replace(/:/g,"")}`)))}catch(s){console.error(s),this.deviceInfo.set(t,!1)}})}getMatterCommissioningInfo(t){return ue(this,null,function*(){try{let r=(yield Te(this.$api.get("/status/homebridge/child-bridges"))).find(n=>n.username===t);r&&r.matterSetupUri?this.matterDeviceInfo.set(t,{setupUri:r.matterSetupUri,pin:r.matterPin,serialNumber:r.matterSerialNumber,commissioned:r.matterCommissioned,deviceCount:r.matterDeviceCount,port:r.matterConfig?.port}):this.matterDeviceInfo.set(t,{port:r?.matterConfig?.port})}catch(s){console.error(s),this.matterDeviceInfo.set(t,{})}})}toggleMatterBridge(t,s,r){return ue(this,null,function*(){if(s){let n=this.matterBridgeCache.get(Number(r));t._bridge||(t._bridge={env:{}});let l;if(n?.port?l=n.port:l=yield this.getUnusedMatterPort(),t._bridge.matter={port:l},this.matterBridgeCache.set(Number(r),{port:l}),t._bridge.username){let c=t._bridge.username.replace(/[^a-z0-9]/gi,"-").replace(/-+/g,"-").replace(/^-|-$/g,"");this.deleteMatterBridges=this.deleteMatterBridges.filter(p=>p.identifier!==c),this.matterExplicitlyDisabledBeforeChildBridge.delete(Number(r)),this.originalMatterBridges.some(p=>p.port===l)?yield this.getMatterCommissioningInfo(t._bridge.username):this.matterDeviceInfo.set(t._bridge.username,{port:l})}}else{this.matterEnabledBlocks[Number(r)]=!1;let n=this.originalMatterBridges.some(l=>t._bridge?.matter&&l.port===t._bridge.matter.port);if(t._bridge&&t._bridge.matter&&(this.matterBridgeCache.set(Number(r),{port:t._bridge.matter.port}),delete t._bridge.matter),t._bridge?.username&&(this.matterDeviceInfo.set(t._bridge.username,null),n)){let l=t._bridge.username.replace(/[^a-z0-9]/gi,"-").replace(/-+/g,"-").replace(/^-|-$/g,""),c=t._bridge.name||this.plugin.displayName||this.plugin.name;this.deleteMatterBridges.push({username:t._bridge.username,identifier:l,name:c})}t._bridge&&Object.keys(t._bridge).length===0&&delete t._bridge}})}getMatterPortValidationError(t){let s=this.configBlocks[Number(t)],r=s._bridge?.matter?.port;if(!r&&r!==0)return!1;if(typeof r!="number"||!Number.isInteger(r)||r<1024||r>65535||[5353,8080,8443].includes(r))return!0;let n=s._bridge?.port;return n&&r===n}getHapNameValidationError(t){let s=this.configBlocks[Number(t)];if(!s._bridge?.name)return!1;let r=s._bridge.name;return!/^[\p{L}\p{N}][\p{L}\p{N} ']*[\p{L}\p{N}]$/u.test(r)}getHapPortValidationError(t){let s=this.configBlocks[Number(t)],r=s._bridge?.port;if(!r&&r!==0)return!1;if(typeof r!="number"||!Number.isInteger(r)||r<1025||r>65533)return!0;let n=s._bridge?.matter?.port;return n&&r===n}normalizeMatterConfig(t){t._bridge?.matter&&(!t._bridge.matter.port&&t._bridge.matter.port!==0&&(t._bridge.matter.port=void 0),t._bridge.matter.port===void 0&&delete t._bridge.matter)}save(){return ue(this,null,function*(){this.saveInProgress=!0;try{for(let[s,r]of this.configBlocks.entries()){if(r._bridge?.username){if(this.getHapNameValidationError(s.toString())){this.$toastr.error(this.$translate.instant("plugins.bridge.name_error"),this.$translate.instant("toast.title_error")),this.saveInProgress=!1;return}if(this.getHapPortValidationError(s.toString())){this.$toastr.error(this.$translate.instant("plugins.bridge.port_error",{type:"HAP"}),this.$translate.instant("toast.title_error")),this.saveInProgress=!1;return}}if(this.matterEnabledBlocks[s]&&this.getMatterPortValidationError(s.toString())){this.$toastr.error(this.$translate.instant("plugins.bridge.port_error",{type:"Matter"}),this.$translate.instant("toast.title_error")),this.saveInProgress=!1;return}this.normalizeMatterConfig(r)}yield Te(this.$api.post(`/config-editor/plugin/${encodeURIComponent(this.plugin.name)}`,this.configBlocks));for(let s of this.deleteBridges)try{yield Te(this.$api.delete(`/server/pairings/${s.id.replace(/:/g,"")}`))}catch(r){console.error(r),this.$toastr.error(this.$translate.instant("settings.reset_bridge.error"),this.$translate.instant("toast.title_error"))}let t=this.deleteMatterBridges.filter(s=>!this.deleteBridges.some(r=>r.id===s.username));for(let s of t)try{let r=s.username.replace(/:/g,"");yield Te(this.$api.delete(`/server/pairings/${r}/matter`))}catch(r){console.error(r),this.$toastr.error(this.$translate.instant("settings.reset_bridge.error"),this.$translate.instant("toast.title_error"))}this.$activeModal.close(),this.$modal.open(Ko,{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.$plugin.settings({name:this.plugin.name,settingsSchema:!0,links:{}})}generateUsername(){let t="0123456789ABCDEF",s="0E:";for(let r=0;r<5;r+=1)s+=t.charAt(Math.round(Math.random()*15)),s+=t.charAt(Math.round(Math.random()*15)),r!==4&&(s+=":");return s}openFullConfigEditor(){this.$router.navigate(["/config"]),this.$activeModal.close()}dismissModal(){this.$activeModal.dismiss("Dismiss")}closeModal(){this.$activeModal.close("Dismiss")}getMatterBridgeName(t){let s=this.configBlocks.find(r=>r._bridge?.username===t);return s?._bridge?.name?s._bridge.name:s.name||s.platform||s.accessory}loadHidePairingAlerts(){return ue(this,null,function*(){try{let t=yield Te(this.$api.get("/config-editor/ui/plugins/hide-pairing-alerts"));this.hidePairingAlerts=new Set(t)}catch(t){console.error("Failed to load hide pairing alerts:",t)}})}isUnpairingHidden(t,s){return this.hidePairingAlerts.has(`${t}-${s}`.toUpperCase())}toggleHideUnpairing(t,s){return ue(this,null,function*(){let r=`${t}-${s}`.toUpperCase(),n=Array.from(this.hidePairingAlerts);this.hidePairingAlerts.has(r)?n=n.filter(l=>l!==r):(n.push(r),n.sort());try{yield Te(this.$api.put("/config-editor/ui/plugins/hide-pairing-alerts",{body:n})),this.hidePairingAlerts=new Set(n),this.$settings.setEnvItem("plugins.hidePairingAlerts",n)}catch(l){console.error("Failed to update hide pairing alerts:",l),this.$toastr.error(l.message,this.$translate.instant("toast.title_error"))}})}static \u0275fac=function(s){return new(s||e)};static \u0275cmp=ve({type:e,selectors:[["ng-component"]],inputs:{plugin:"plugin",schema:"schema",justInstalled:"justInstalled"},decls:16,vars:8,consts:[["bridgeLinkSelect",""],[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-cog","fa-spin",2,"font-size","75px"],["alt","Plugin Icon",1,"mb-3","plugin-icon-card",3,"error","src"],[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","list-group-box","mt-3","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","flex-row","pb-2"],[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"],["for","bridgeLink",1,"mb-2","mb-md-0","w-100","w-md-50"],["id","bridgeLink",1,"custom-select",3,"change"],[1,"mb-2","mb-md-0","w-100","w-md-50"],[1,"text-start","text-md-end","w-100","w-md-50","grey-text"],[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"],[1,"text-start","text-md-end","w-100","w-md-50","grey-text","font-monospace"],["type","text",1,"form-control","custom-input",3,"ngModelChange","ngModel","ngClass"],["type","text",1,"form-control","custom-input",3,"ngModelChange","placeholder","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,"fas","fa-xl","fa-hap","me-2","my-2"],[1,"text-end","grey-text","d-flex","align-items-center",2,"opacity","0.5","cursor","not-allowed"],["type","checkbox",1,"rendux-input",2,"pointer-events","none",3,"id","checked","disabled"],[1,"rendux-label",2,"cursor","not-allowed",3,"for"],[1,"list-group-item","text-center"],["type","number","min","1025","max","65533",1,"form-control","custom-input",3,"ngModelChange","ngModel","ngClass"],[1,"w-100","d-flex","flex-column","text-center"],[1,"mx-auto","d-flex","align-items-center","justify-content-center","qr-code-placeholder","primary-text","p-3"],[1,"text-center","grey-text"],[1,"fas","fa-qrcode","fa-2x","mb-2","primary-text"],[1,"text-center","small","grey-text"],[1,"mx-auto",2,"width","175px","height","175px",3,"data"],[1,"mx-auto","mt-3","mb-1","font-monospace"],[1,"grey-text","mx-auto","small","mb-1",2,"max-width","400px"],[1,"fas","fa-link",3,"ngClass"],["type","checkbox",1,"rendux-input",3,"change","id","checked"],[1,"fas","fa-xl","fa-matter","me-2","my-2"],[1,"badge","badge-primary","ms-1"],[1,"list-group-item"],[1,"grey-text","small"],["type","number","min","1024","max","65535","placeholder","e.g. 5540",1,"form-control","custom-input",3,"ngModelChange","ngModel","ngClass"],[1,"mx-auto","d-flex","align-items-center","justify-content-center","qr-code-placeholder","primary-text"],[1,"d-inline-block","text-start","mb-0"],[1,"fas","fa-lg","fa-hap","me-1"],[1,"grey-text","font-monospace"],[1,"fas","fa-lg","fa-matter","me-1"],[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-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(s,r){s&1&&(b(0,"div",1)(1,"div",2)(2,"h5",3),A(3),f(),U(4,ase,2,4,"button",4),f(),b(5,"div",5),U(6,lse,2,0,"div",6),U(7,Vse,10,12),f(),b(8,"div",7)(9,"div",8),U(10,qse,3,4,"button",9),f(),b(11,"div",10),U(12,$se,4,5,"button",11),U(13,Kse,3,3,"button",12),f(),b(14,"div",13),U(15,Zse,2,2),f()()()),s&2&&(m(3),re(r.plugin.displayName||r.plugin.name),m(),O(r.justInstalled?-1:4),m(2),O(r.loading?6:-1),m(),O(r.loading?-1:7),m(3),O(r.canConfigure&&!r.justInstalled?10:-1),m(2),O(r.justInstalled?12:-1),m(),O(r.canConfigure?-1:13),m(2),O(r.canConfigure&&!r.justInstalled?15:-1))},dependencies:[us,Cr,xr,ro,cv,Hr,Fo,ei,gv,uv,Ji,Vo,Iv,wi,xt],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}.qr-code-placeholder[_ngcontent-%COMP%]{width:175px;height:175px;border:2px solid currentColor;border-radius:8px;background-color:#f8f9fa;padding:20px} body.dark-mode .qr-code-placeholder, [class*=config-ui-x-dark-mode] .qr-code-placeholder{background-color:#1a1a1a}"]})}return e})();var X_=lt(Kc(),1);var Su=()=>["homebridge","homebridge-config-ui-x"],sA=(e,i,t)=>({pluginName:e,minVersion:i,installedVersion:t}),Qse=(e,i,t)=>({minVersion:e,installedVersion:i,latestVersion:t,packageName:"Homebridge"}),Xse=()=>({packageName:"Homebridge"}),ere=(e,i,t)=>({minVersion:e,installedVersion:i,latestVersion:t,packageName:"Homebridge UI"}),tre=()=>({packageName:"Homebridge UI"});function ire(e,i){if(e&1&&(b(0,"li",14)(1,"div",17),R(2,"i",18),f(),b(3,"div",19),A(4),D(5,"translate"),f()()),e&2){let t=H(2);m(4),ie(" ",zt(5,1,"plugins.compat.node_too_low",di(4,sA,t.plugin.displayName,t.nodeMinVersion,t.nodeInstalledVersion))," ")}}function sre(e,i){if(e&1&&(b(0,"li",14)(1,"div",17),R(2,"i",18),f(),b(3,"div",19),A(4),D(5,"translate"),f()()),e&2){let t=H(2);m(4),ie(" ",zt(5,1,"plugins.compat.hb_too_low",di(4,sA,t.plugin.displayName,t.hbMinVersion,t.hbInstalledVersion))," ")}}function rre(e,i){if(e&1&&(b(0,"div",11),R(1,"i",12),f(),b(2,"ul",13),U(3,ire,6,8,"li",14),U(4,sre,6,8,"li",14),f(),b(5,"ngb-alert",15)(6,"p",16),A(7),D(8,"translate"),f()()),e&2){let t=H();m(),he(Jy("",t.action==="install"?"far fa-arrow-alt-circle-down":t.action==="update"?"far fa-arrow-alt-circle-up":"fas fa-code-compare"," primary-text")),m(2),O(t.isValidNode?-1:3),m(),O(t.isValidHb?-1:4),m(),S("dismissible",!1),m(2),re(B(8,7,"common.phrases.are_you_sure"))}}function ore(e,i){if(e&1&&(b(0,"div",11),R(1,"i",20),f(),b(2,"ul",13)(3,"li",14)(4,"div",17),R(5,"i",18),f(),b(6,"div",19),A(7),D(8,"translate"),f()()(),b(9,"ngb-alert",15)(10,"p",21),A(11),D(12,"translate"),f(),b(13,"p",16)(14,"a",22),A(15),D(16,"translate"),R(17,"i",23),f()()()),e&2){let t=H();m(7),ie(" ",zt(8,4,"plugins.compat.hb_node_too_low",di(12,Qse,t.nodeMinVersion,t.nodeInstalledVersion,t.plugin.latestVersion))," "),m(2),S("dismissible",!1),m(2),re(zt(12,7,"plugins.compat.node_first",rt(16,Xse))),m(4),ie(" ",B(16,10,"plugins.compat.node_link")," ")}}function nre(e,i){if(e&1&&(b(0,"div",11),R(1,"i",20),f(),b(2,"ul",13)(3,"li",14)(4,"div",17),R(5,"i",18),f(),b(6,"div",19),A(7),D(8,"translate"),f()()(),b(9,"ngb-alert",15)(10,"p",21),A(11),D(12,"translate"),f(),b(13,"p",16)(14,"a",22),A(15),D(16,"translate"),R(17,"i",23),f()()()),e&2){let t=H();m(7),ie(" ",zt(8,4,"plugins.compat.hb_node_too_low",di(12,ere,t.nodeMinVersion,t.nodeInstalledVersion,t.plugin.latestVersion))," "),m(2),S("dismissible",!1),m(2),re(zt(12,7,"plugins.compat.node_first",rt(16,tre))),m(4),ie(" ",B(16,10,"plugins.compat.node_link")," ")}}function are(e,i){if(e&1){let t=se();b(0,"button",24),Q("click",function(){G(t);let r=H();return Y(r.dismissModal())}),A(1),D(2,"translate"),f()}e&2&&(m(),ie(" ",B(2,1,"form.button_close")," "))}function lre(e,i){if(e&1){let t=se();b(0,"button",24),Q("click",function(){G(t);let r=H();return Y(r.dismissModal())}),A(1),D(2,"translate"),f()}e&2&&(m(),ie(" ",B(2,1,"form.button_close")," "))}function cre(e,i){if(e&1){let t=se();b(0,"button",25),Q("click",function(){G(t);let r=H();return Y(r.closeModal())}),A(1),D(2,"translate"),f()}e&2&&(m(),ie(" ",B(2,1,"form.button_continue")," "))}var rA=(()=>{class e{$activeModal=j(Ct);$settings=j(_t);plugin;isValidNode;isValidHb;action;nodeMinVersion;nodeInstalledVersion;hbMinVersion;hbInstalledVersion;ngOnInit(){this.nodeMinVersion=(0,X_.minVersion)(this.plugin.updateEngines?.node),this.nodeInstalledVersion=this.$settings.env.nodeVersion,this.hbMinVersion=(0,X_.minVersion)(this.plugin.updateEngines?.homebridge),this.hbInstalledVersion=this.$settings.env.homebridgeVersion}dismissModal(){this.$activeModal.dismiss("Dismiss")}closeModal(){this.$activeModal.close(!0)}static \u0275fac=function(s){return new(s||e)};static \u0275cmp=ve({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-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-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(s,r){s&1&&(b(0,"div",0)(1,"div",1)(2,"h5",2),A(3),D(4,"translate"),f(),b(5,"button",3),D(6,"translate"),Q("click",function(){return r.dismissModal()}),f()(),b(7,"div",4),U(8,rre,9,9),U(9,ore,18,17),U(10,nre,18,17),f(),b(11,"div",5)(12,"div",6),U(13,are,3,3,"button",7),f(),b(14,"div",8),U(15,lre,3,3,"button",7),f(),b(16,"div",9),U(17,cre,3,3,"button",10),f()()()),s&2&&(m(3),re(B(4,8,"plugins.compat.title")),m(2),ge("aria-label",B(6,10,"form.button_close")),m(3),O(rt(12,Su).includes(r.plugin.name)?-1:8),m(),O(r.plugin.name==="homebridge"?9:-1),m(),O(r.plugin.name==="homebridge-config-ui-x"?10:-1),m(3),O(rt(13,Su).includes(r.plugin.name)?-1:13),m(2),O(rt(14,Su).includes(r.plugin.name)?15:-1),m(2),O(rt(15,Su).includes(r.plugin.name)?-1:17))},dependencies:[Vo,xt],encapsulation:2})}return e})();var oA=lt(ga(),1);var nA=(()=>{class e{$api=j(Ze);$toastr=j(nt);$translate=j(ot);downloadDumpFile(){this.$api.get("/plugins/custom-plugins/homebridge-deconz/dump-file",{observe:"response",responseType:"blob"}).subscribe({next:t=>{(0,oA.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(s){return new(s||e)};static \u0275cmp=ve({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-download"]],template:function(s,r){s&1&&(na(0,"button",0),Dc("click",function(){return r.downloadDumpFile()}),la(1,"i",1),A(2,` Download Dump File
|
|
44
|
+
`)}),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:()=>ue(this,null,function*(){if(this.pluginName==="homebridge-config-ui-x")try{this.$settings.webroot&&this.$settings.webroot!=="/"&&(yield Te(this.$api.put("/server/webroot",{webroot:this.$settings.webroot}))),window.location.href="restart"}catch(t){console.error("Failed to update webroot:",t),window.location.href="restart"}else{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 ue(this,null,function*(){try{for(let s of this.childBridges)yield Te(this.$api.put(`/server/restart/${s.username}`,{}));let t=this.$modal.open(Fz,{size:"xl",backdrop:"static"});t.componentInstance.plugin={name:this.pluginName,displayName:this.pluginDisplayName},t.componentInstance.childBridges=this.childBridges}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,Gz.saveAs)(t,`${this.pluginName}-error.log`)}downloadBackupFile(){return ue(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(Ko,{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 ue(this,null,function*(){let t="update";if(Number(this.installedVersion.split(".")[0])<2&&["2","alpha","beta"].includes(this.targetVersion.split(".")[0])){let s=this.$modal.open(qz,{size:"lg",backdrop:"static"});s.componentInstance.isUpdating=!0,t=yield s.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:s=>{console.error(s),this.$router.navigate(["/restart"])}})},error:s=>{this.actionFailed=!0,console.error(s),this.$toastr.error(s.message,this.$translate.instant("toast.title_error")),this.$activeModal.close()}}):this.$activeModal.close()})}getVersionNotes(){return ue(this,null,function*(){this.releaseNotesShow=!0;try{let t=yield Te(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 ue(this,null,function*(){(yield Te(this.$api.get("/status/homebridge/child-bridges"))).forEach(s=>{this.pluginName===s.plugin&&this.childBridges.push(s)})})}static \u0275fac=function(s){return new(s||e)};static \u0275cmp=ve({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-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","primary-text",2,"font-size","75px",3,"ngClass"],[1,"mb-3"],[1,"p-2","mb-0"],[1,"far","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-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-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(s,r){s&1&&(b(0,"div",1)(1,"div",2)(2,"h5",3),A(3),f(),b(4,"button",4),D(5,"translate"),Q("click",function(){return r.dismissModal()}),f()(),R(6,"div",5),U(7,nie,2,1,"div",6),U(8,aie,12,14,"div",7),U(9,Cie,18,19,"div",6),U(10,Aie,9,5,"div",8),f()),s&2&&(m(3),re(r.pluginDisplayName),m(),ge("aria-label",B(5,7,"form.button_close")),m(2),S("hidden",!r.onlineUpdateOk||r.actionComplete||r.releaseNotesShow),m(),O(r.actionComplete?7:-1),m(),O(r.onlineUpdateOk?-1:8),m(),O(r.releaseNotesShow&&!r.actionComplete&&r.onlineUpdateOk?9:-1),m(),O(!r.onlineUpdateOk||r.actionComplete||r.releaseNotesShow||r.actionFailed?10:-1))},dependencies:[Lo,qo,$o,wi,bv,_v,hv,mv,fv,xt],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 Jz=lt(Kc(),1);var jie=()=>["homebridge","homebridge-config-ui-x"];function Die(e,i){e&1&&(b(0,"div",5),R(1,"i",12),f())}function Nie(e,i){if(e&1&&(R(0,"i",20),b(1,"h6",21),A(2),D(3,"translate"),f(),b(4,"p",21),A(5),D(6,"translate"),b(7,"span",22),A(8),f()()),e&2){let t=H(2);m(2),re(B(3,3,"plugins.manage.select_version")),m(3),ie(" ",B(6,5,"plugins.status_installed"),": "),m(3),ie("v",t.plugin.installedVersion)}}function Mie(e,i){e&1&&(R(0,"i",23),b(1,"h6",21),A(2),D(3,"translate"),f()),e&2&&(m(2),re(B(3,1,"plugins.manage.select_version")))}function Rie(e,i){e&1&&R(0,"i",26)}function Eie(e,i){e&1&&R(0,"i",27)}function Bie(e,i){if(e&1){let t=se();b(0,"li",14)(1,"span",8),A(2),R(3,"br"),b(4,"small",24),A(5),f()(),b(6,"button",25),Q("click",function(){let r=G(t).$implicit,n=H(2);return Y(n.doInstall(r.version))}),U(7,Rie,1,0,"i",26)(8,Eie,1,0,"i",27),f()()}if(e&2){let t=i.$implicit,s=H(2);m(2),ie(" ",t.tag," "),m(3),ie("v",t.version),m(2),O(s.plugin.installedVersion===t.version?7:8)}}function Uie(e,i){e&1&&A(0," \u2713 ")}function Oie(e,i){if(e&1&&(b(0,"option",17),A(1),U(2,Uie,1,0),f()),e&2){let t=i.$implicit,s=H(2);S("value",t.version)("selected",s.versionSelect==t.version),m(),ie(" v",t.version," "),m(),O(t.version==s.plugin.installedVersion?2:-1)}}function Fie(e,i){e&1&&R(0,"i",26)}function Vie(e,i){e&1&&R(0,"i",27)}function qie(e,i){if(e&1){let t=se();b(0,"button",25),Q("click",function(){G(t);let r=H(2);return Y(r.doInstall(r.versionSelect))}),U(1,Fie,1,0,"i",26)(2,Vie,1,0,"i",27),f()}if(e&2){let t=H(2);m(),O(t.plugin.installedVersion===t.versionSelect?1:2)}}function Lie(e,i){if(e&1&&(b(0,"ul",19)(1,"li",28)(2,"div",8),A(3),D(4,"translate"),R(5,"br"),b(6,"span",29),A(7),D(8,"translate"),f()(),b(9,"div",30),R(10,"input",31),D(11,"translate"),R(12,"label",32),f()()()),e&2){let t=H(2);m(3),ie(" ",B(4,4,"plugins.manage.hide_updates")),m(4),re(B(8,6,"plugins.manage.hide_updates_desc")),m(3),S("formControl",t.hideUpdatesFormControl),ge("aria-label",B(11,8,"plugins.manage.hide_updates"))}}function $ie(e,i){if(e&1){let t=se();b(0,"div",6),U(1,Nie,9,7)(2,Mie,4,3),b(3,"ul",13),Zt(4,Bie,9,3,"li",14,Jt),b(6,"li",14)(7,"div",15),A(8),D(9,"translate"),R(10,"br"),b(11,"select",16),tt("ngModelChange",function(r){G(t);let n=H();return et(n.versionSelect,r)||(n.versionSelect=r),Y(r)}),Zt(12,Oie,3,4,"option",17,Jt),f()(),U(14,qie,3,1,"button",18),f()(),U(15,Lie,13,10,"ul",19),f()}if(e&2){let t=H();m(),O(t.plugin.installedVersion?1:2),m(3),Qt(t.versionsWithTags),m(4),ie(" ",B(9,5,"plugins.manage.all_versions")," "),m(3),Xe("ngModel",t.versionSelect),m(),Qt(t.versions),m(2),O(t.versionSelect?14:-1),m(),O(t.plugin.installedVersion&&!rt(7,jie).includes(t.plugin.name)?15:-1)}}var Zz=(()=>{class e{$activeModal=j(Ct);$api=j(Ze);$settings=j(_t);$toastr=j(nt);$translate=j(ot);plugin;isUpdateHidden=!1;hideUpdatesFormControl=new nv(!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(Eo(750)).subscribe(t=>this.toggleHideUpdates(t))}doInstall(t){this.$activeModal.close({name:this.plugin.name,version:t,engines:this.versions.find(s=>s.version===t).engines,action:this.plugin.installedVersion?"alternate":"install"})}toggleHideUpdates(t){return ue(this,null,function*(){let s=this.$settings.env.plugins?.hideUpdatesFor||[];t?s.includes(this.plugin.name)||(s=[...s,this.plugin.name].sort((r,n)=>r.localeCompare(n))):s=s.filter(r=>r!==this.plugin.name);try{yield Te(this.$api.put("/config-editor/ui/plugins/hide-updates-for",{body:s})),this.$settings.setEnvItem("plugins.hideUpdatesFor",s),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[s,r]of Object.entries(t.versions))this.versions.push({version:s,engines:r.engines||null}),Object.keys(t.tags).filter(n=>t.tags[n]===s).forEach(n=>{this.versionsWithTags.push({version:s,tag:n})});this.plugin.installedVersion&&!this.versions.find(s=>s.version===this.plugin.installedVersion)&&this.versions.push({version:this.plugin.installedVersion,engines:this.plugin.engines||null}),this.versions.sort((s,r)=>(0,Jz.rcompare)(s.version,r.version)),this.versionsWithTags.sort((s,r)=>{let n=["latest","next","beta","alpha"],l=n.includes(s.tag)?n.indexOf(s.tag):999,c=n.includes(r.tag)?n.indexOf(r.tag):999;return l-c}),!this.versions.find(s=>s.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(s){return new(s||e)};static \u0275cmp=ve({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-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-code-compare","primary-text","mb-3",2,"font-size","75px"],[1,"mb-3"],[1,"font-monospace"],[1,"far","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-rotate-right"],[1,"fas","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(s,r){s&1&&(b(0,"div",0)(1,"div",1)(2,"h5",2),A(3),f(),b(4,"button",3),D(5,"translate"),Q("click",function(){return r.dismissModal()}),f()(),b(6,"div",4),U(7,Die,2,0,"div",5)(8,$ie,16,8,"div",6),f(),b(9,"div",7),R(10,"div",8),b(11,"div",9)(12,"button",10),D(13,"translate"),Q("click",function(){return r.dismissModal()}),A(14),D(15,"translate"),f()(),R(16,"div",11),f()()),s&2&&(m(3),re(r.plugin.displayName||r.plugin.name),m(),ge("aria-label",B(5,5,"form.button_close")),m(3),O(r.loading?7:8),m(5),ge("aria-label",B(13,7,"form.button_close")),m(2),ie(" ",B(15,9,"form.button_close")," "))},dependencies:[us,Cr,xr,Hr,Fo,ei,Ji,ua,Sr,xt],encapsulation:2})}return e})();var Qz=lt(sU(),1);var Hu=(()=>{class e{transform(t){return t.replace(/\$\{\{HOSTNAME\}\}/g,location.hostname)}static \u0275fac=function(s){return new(s||e)};static \u0275pipe=Yy({name:"interpolateMd",type:e,pure:!0})}return e})();var Xz=(e,i,t)=>({"fa-circle-check green-text":e,"fa-circle-exclamation red-text":i,"fa-circle-exclamation orange-text":t});function Kie(e,i){e&1&&(b(0,"div",5),R(1,"i",14),f())}function Wie(e,i){e&1&&(b(0,"div",6),A(1),D(2,"translate"),D(3,"translate"),f()),e&2&&(m(),vr(" ",B(2,2,"plugins.settings.message_manual_config_required")," ",B(3,4,"plugins.settings.message_consult_documentation")," "))}function Gie(e,i){if(e&1&&(R(0,"markdown",7),D(1,"interpolateMd")),e&2){let t=H();S("data",B(1,1,t.schema.headerDisplay))}}function Yie(e,i){if(e&1){let t=se();b(0,"button",28),D(1,"translate"),Q("click",function(){G(t);let r=H(2).$index,n=H(2);return Y(n.removeBlock(r))}),R(2,"i",29),f()}e&2&&S("ngbTooltip",B(1,2,"form.button_delete"))("openDelay",150)}function Jie(e,i){if(e&1){let t=se();U(0,Yie,3,4,"button",25),b(1,"button",26),D(2,"translate"),Q("click",function(){G(t);let r=H().$index,n=H(2);return Y(n.editBlock(r))}),R(3,"i",27),f()}if(e&2){let t=H().$index,s=H(2);O(s.show==="configBlock."+t?0:-1),m(),S("ngbTooltip",B(2,3,"form.button_edit"))("openDelay",150)}}function Zie(e,i){if(e&1&&(R(0,"i",21),D(1,"translate")),e&2){let t=H().$index,s=H(2);S("ngClass",di(5,Xz,s.formBlocksValid[t],s.strictValidation&&!s.formBlocksValid[t],!s.strictValidation&&!s.formBlocksValid[t]))("ngbTooltip",B(1,3,s.formBlocksValid[t]?"form.label_valid":s.strictValidation?"form.label_invalid_strict":"form.label_invalid"))("openDelay",150)}}function Qie(e,i){if(e&1){let t=se();b(0,"div",16)(1,"div",18)(2,"div",19)(3,"h5",20),A(4),f(),b(5,"div"),U(6,Jie,4,5),U(7,Zie,2,9,"i",21),f()()(),b(8,"div",22)(9,"div",23)(10,"ngx-monaco-editor",24),tt("ngModelChange",function(r){G(t);let n=H(2);return et(n.currentBlock,r)||(n.currentBlock=r),Y(r)}),Q("onInit",function(r){G(t);let n=H(2);return Y(n.onEditorInit(r))}),f()()()()}if(e&2){let t=i.$implicit,s=i.$index,r=H(2);S("ngbAccordionItem","configBlock."+s)("collapsed",r.show!=="configBlock."+s)("id","configBlock."+s),m(4),re(t.name||r.pluginAlias),m(2),O(!(r.schema!=null&&r.schema.singular)||r.pluginConfig.length>1?6:-1),m(),O(r.schema!=null&&r.schema.singular?-1:7),m(3),S("options",r.editorOptions),Xe("ngModel",r.currentBlock)}}function Xie(e,i){if(e&1&&(b(0,"div",17),R(1,"markdown",7),D(2,"interpolateMd"),f()),e&2){let t=H(2);m(),S("data",B(2,1,t.schema.footerDisplay))}}function ese(e,i){if(e&1&&(b(0,"div",15),Zt(1,Qie,11,8,"div",16,Jt),f(),U(3,Xie,3,3,"div",17)),e&2){let t=H();S("closeOthers",!0),m(),Qt(t.pluginConfig),m(2),O(t.schema!=null&&t.schema.footerDisplay?3:-1)}}function tse(e,i){if(e&1&&(R(0,"i",30),D(1,"translate")),e&2){let t=H(2);S("ngClass",di(5,Xz,t.formIsValid,t.strictValidation&&!t.formIsValid,!t.strictValidation&&!t.formIsValid))("ngbTooltip",B(1,3,t.formIsValid?"form.label_valid":t.strictValidation?"form.label_invalid_strict":"form.label_invalid"))("openDelay",150)}}function ise(e,i){if(e&1){let t=se();b(0,"button",34),Q("click",function(){G(t);let r=H(2);return Y(r.addBlock())}),R(1,"i",35),f()}}function sse(e,i){e&1&&(A(0),D(1,"translate")),e&2&&ie(" ",B(1,1,"form.button_save")," ")}function rse(e,i){e&1&&R(0,"i",33)}function ose(e,i){if(e&1){let t=se();U(0,tse,2,9,"i",30),U(1,ise,2,0,"button",31),b(2,"button",32),Q("click",function(){G(t);let r=H();return Y(r.save())}),U(3,sse,2,3),U(4,rse,1,0,"i",33),f()}if(e&2){let t=H();O(t.schema!=null&&t.schema.singular?0:-1),m(),O(t.schema!=null&&t.schema.singular?-1:1),m(),S("disabled",t.saveInProgress||!t.formIsValid&&t.strictValidation),m(),O(t.saveInProgress?-1:3),m(),O(t.saveInProgress?4:-1)}}function nse(e,i){if(e&1){let t=se();b(0,"button",36),Q("click",function(){G(t);let r=H();return Y(r.openFullConfigEditor())}),A(1),D(2,"translate"),f()}e&2&&(m(),ie(" ",B(2,1,"plugins.settings.label_open_config_editor")," "))}var Z_=(()=>{class e{$activeModal=j(Ct);$api=j(Ze);$cb=j(Wo);$cdr=j(Gs);$md=j(Sv);$plugin=j(Vr);$router=j(Ts);$settings=j(_t);$toastr=j(nt);$translate=j(ot);isDebugModeEnabled=this.$settings.isFeatureEnabled("childBridgeDebugMode");isMatterSupported=this.$settings.isFeatureEnabled("matterSupport");plugin;schema;pluginAlias;pluginType;loading=!0;canConfigure=!1;show="";pluginConfig;currentBlock;currentBlockIndex=null;saveInProgress=!1;isFirstSave=!1;monacoEditor;formBlocksValid={};formIsValid=!0;strictValidation=!1;editorOptions;get arrayKey(){return this.pluginType==="accessory"?"accessories":"platforms"}ngOnInit(){this.editorOptions={language:"json",theme:this.$settings.actualLightingMode==="dark"?"vs-dark":"vs-light"},this.strictValidation=this.schema?.strictValidation||!1,this.$md.detect.mobile()?(this.loading=!1,this.canConfigure=!1):this.loadPluginAlias()}onEditorInit(t){return ue(this,null,function*(){window.editor=t,this.monacoEditor=t,this.setupSchemaValidation(),this.monacoEditor.onDidChangeModelContent(()=>setTimeout(()=>this.onValidationChange(),300)),window.monaco.editor.onDidChangeMarkers(r=>{let n=this.monacoEditor.getModel()?.uri;n&&r.some(l=>l.toString()===n.toString())&&this.onValidationChange()}),yield this.monacoEditor.getModel().setValue(this.currentBlock),yield this.monacoEditor.getAction("editor.action.formatDocument").run()})}ngOnDestroy(){try{if(window.editor&&window.editor.dispose&&(window.editor.dispose(),window.editor=void 0),window.monaco){let s=`http://plugin/${this.schema?.pluginAlias||this.pluginAlias}/config.json`,n=(window.monaco.languages.json.jsonDefaults.diagnosticsOptions.schemas||[]).filter(l=>l.uri!==s);window.monaco.languages.json.jsonDefaults.setDiagnosticsOptions({validate:!0,allowComments:!1,schemas:n})}this.monacoEditor&&this.monacoEditor.dispose()}catch{}}setupSchemaValidation(){let t=this.schema?.schema;t||(t=this.createBasicSchema());let r=`http://plugin/${this.schema?.pluginAlias||this.pluginAlias}/config.json`,n=tp(this.$translate,{isDebugModeEnabled:this.isDebugModeEnabled,isMatterSupported:this.isMatterSupported,isPlatformPlugin:this.pluginType==="platform"}),c=[...t.required||[]];this.pluginType==="platform"?(c.includes("platform")||c.push("platform"),t.properties?.platform?t.properties.platform.const=this.pluginAlias:t.properties=qe(fe({},t.properties),{platform:{type:"string",title:"Platform Name",description:"This is used by Homebridge to identify which plugin this platform belongs to.",const:this.pluginAlias}})):(c.includes("accessory")||c.push("accessory"),c.includes("name")||c.push("name"),t.properties?.accessory?t.properties.accessory.const=this.pluginAlias:t.properties=qe(fe({},t.properties),{accessory:{type:"string",title:this.$translate.instant("child_bridge.config.accessory"),description:"This is used by Homebridge to identify which plugin this accessory belongs to.",const:this.pluginAlias}})),window.monaco.languages.json.jsonDefaults.setDiagnosticsOptions({validate:!0,allowComments:!1,schemas:[{uri:r,fileMatch:["*"],schema:qe(fe({},t),{required:c,properties:qe(fe({},t.properties),{_bridge:n})})}]})}createBasicSchema(){let t=tp(this.$translate,{isDebugModeEnabled:this.isDebugModeEnabled,isMatterSupported:this.isMatterSupported,isPlatformPlugin:this.pluginType==="platform"});return this.pluginType==="platform"?{type:"object",required:["platform"],title:this.$translate.instant("plugins.button_settings"),properties:{platform:{type:"string",title:"Platform Name",description:"This is used by Homebridge to identify which plugin this platform belongs to.",not:{enum:["config"]}},name:{type:"string",title:this.$translate.instant("accessories.name"),description:"The name of the platform."},_bridge:t}}:{type:"object",required:["accessory","name"],title:this.$translate.instant("plugins.button_settings"),properties:{accessory:{type:"string",title:this.$translate.instant("child_bridge.config.accessory"),description:"This is used by Homebridge to identify which plugin this accessory belongs to."},name:{type:"string",title:this.$translate.instant("accessories.name"),description:"The name of the accessory."},_bridge:t}}}isJsonValid(){if(!this.monacoEditor)return!0;let t=this.monacoEditor.getModel();if(!t)return!0;let s=window.monaco.editor.getModelMarkers({resource:t.uri}),r=window.monaco;return!s.filter(l=>l.severity===r.MarkerSeverity.Error||l.severity===r.MarkerSeverity.Warning).length}updateOverallValidation(){this.formIsValid=Object.values(this.formBlocksValid).every(t=>t)}onValidationChange(){this.currentBlockIndex!==null&&this.monacoEditor&&(this.formBlocksValid[this.currentBlockIndex]=this.isJsonValid(),this.updateOverallValidation(),this.$cdr.detectChanges())}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){if(this.currentBlockIndex!==null){if(!this.saveCurrentBlock())return;this.formBlocksValid[this.currentBlockIndex]=this.isJsonValid()}this.show=`configBlock.${t}`,this.currentBlockIndex=t,this.currentBlock=JSON.stringify(this.pluginConfig[this.currentBlockIndex],null,4),t in this.formBlocksValid||(this.formBlocksValid[t]=!0),this.updateOverallValidation(),setTimeout(()=>this.onValidationChange(),150)}removeBlock(t){let s=this.pluginConfig[t],r=this.pluginConfig.findIndex(n=>n===s);r>-1&&this.pluginConfig.splice(r,1),this.currentBlockIndex=null,this.currentBlock=void 0,this.show=""}save(){return ue(this,null,function*(){if(this.saveInProgress=!0,!this.saveCurrentBlock()){this.saveInProgress=!1;return}try{let t=yield Te(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}this.$activeModal.close(),yield this.$cb.openCorrectRestartModalForPlugin(this.plugin.name)}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.initializeValidationState(),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(),s;t.charAt(0)==='"'&&t.charAt(t.length-1)==="]"&&(t=`{${t}}`);try{s=Qz.default.parse(t)}catch(n){return console.error(n),this.$toastr.error(this.$translate.instant("config.config_invalid_json"),this.$translate.instant("toast.title_error")),!1}if(Array.isArray(s)||typeof s!="object")return this.$toastr.error(this.$translate.instant("plugins.config.must_be_object"),this.$translate.instant("toast.title_error")),!1;if(!s[this.pluginType]&&Array.isArray(s[this.arrayKey])&&s[this.arrayKey].length&&Object.keys(s).length===1&&(s=s[this.arrayKey][0]),this.pluginType==="accessory"&&(!s.name||typeof s.name!="string"))return this.$toastr.error(this.$translate.instant("plugins.config.name_property"),this.$translate.instant("toast.title_error")),s.name="",this.monacoEditor.getModel().setValue(JSON.stringify(s,null,4)),!1;let r=this.pluginConfig[this.currentBlockIndex];Object.keys(r).forEach(n=>delete r[n]),Object.assign(r,s),r[this.pluginType]=this.pluginAlias}return!0}initializeValidationState(){this.formBlocksValid={};for(let t=0;t<this.pluginConfig.length;t+=1)this.formBlocksValid[t]=!0;this.updateOverallValidation()}static \u0275fac=function(s){return new(s||e)};static \u0275cmp=ve({type:e,selectors:[["ng-component"]],inputs:{plugin:"plugin",schema:"schema"},decls:20,vars:16,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"],[1,"plugin-md",3,"data"],[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"],[1,"btn","btn-primary"],[1,"fa","fa-cog","fa-spin",2,"font-size","75px"],["ngbAccordion","",3,"closeOthers"],[1,"card",3,"ngbAccordionItem","collapsed","id"],[1,"mt-3"],["ngbAccordionHeader","",1,"card-header"],[1,"d-flex","align-items-center","justify-content-between"],[1,"m-0","py-2","ps-1"],["container","modal","placement","left","triggers","hover",1,"fa","fa-xl",3,"ngClass","ngbTooltip","openDelay"],["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-2",3,"ngbTooltip","openDelay"],["ngbAccordionToggle","","container","modal","triggers","hover",1,"btn","btn-primary","m-0","ms-2","me-2",3,"click","ngbTooltip","openDelay"],[1,"fa","fa-edit"],["container","modal","triggers","hover",1,"btn","btn-danger","m-0","ms-2",3,"click","ngbTooltip","openDelay"],[1,"fa","fa-trash"],["container","modal","placement","top","triggers","hover",1,"fa","fa-xl","me-2",3,"ngClass","ngbTooltip","openDelay"],["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-spinner","fa-pulse"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant","me-2",3,"click"],[1,"fa","fa-plus"],[1,"btn","btn-primary",3,"click"]],template:function(s,r){s&1&&(b(0,"div",0)(1,"div",1)(2,"h5",2),A(3),f(),b(4,"button",3),D(5,"translate"),Q("click",function(){return r.closeModal()}),f()(),b(6,"div",4),U(7,Kie,2,0,"div",5),U(8,Wie,4,6,"div",6),U(9,Gie,2,3,"markdown",7),U(10,ese,4,2),f(),b(11,"div",8)(12,"div",9)(13,"button",10),Q("click",function(){return r.closeModal()}),A(14),D(15,"translate"),f()(),R(16,"div",11),b(17,"div",12),U(18,ose,5,5),U(19,nse,3,3,"button",13),f()()()),s&2&&(m(3),vr("",r.plugin.displayName||r.plugin.name," - ",r.pluginType),m(),S("disabled",r.saveInProgress),ge("aria-label",B(5,12,"form.button_close")),m(3),O(r.loading?7:-1),m(),O(!r.loading&&!r.canConfigure?8:-1),m(),O(r.schema!=null&&r.schema.headerDisplay?9:-1),m(),O(!r.loading&&r.canConfigure?10:-1),m(3),S("disabled",r.saveInProgress),m(),ie(" ",B(15,14,"form.button_close")," "),m(4),O(r.canConfigure?18:-1),m(),O(r.canConfigure?-1:19))},dependencies:[wi,$c,Lc,qc,Ir,Fc,Oc,yv,us,ei,Ji,Vc,Lo,qo,$o,xt,Hu],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 eA=e=>({link:e}),Q_=e=>({"is-invalid":e}),tA=(e,i)=>({"green-text":e,"grey-text":i});function ase(e,i){if(e&1){let t=se();b(0,"button",14),D(1,"translate"),Q("click",function(){G(t);let r=H();return Y(r.closeModal())}),f()}if(e&2){let t=H();S("disabled",t.saveInProgress),ge("aria-label",B(1,2,"form.button_close"))}}function lse(e,i){e&1&&(b(0,"div",6),R(1,"i",15),f())}function cse(e,i){e&1&&(b(0,"li"),A(1),D(2,"translate"),f()),e&2&&(m(),re(B(2,1,"child_bridge.bridges_paired_2")))}function dse(e,i){if(e&1&&(b(0,"li"),A(1),D(2,"translate"),f(),U(3,cse,3,3,"li")),e&2){let t=H(2);m(),re(B(2,2,"child_bridge.bridges_paired")),m(2),O(t.configBlocks.length===1&&!t.deviceInfo.get(t.configBlocks[0]._bridge==null?null:t.configBlocks[0]._bridge.username)&&t.originalBridges.length===0?3:-1)}}function use(e,i){if(e&1&&(b(0,"option",30),A(1),f()),e&2){let t=i.$implicit,s=i.$index;S("value",s),m(),re(t.name||t.platform||t.accessory)}}function gse(e,i){if(e&1){let t=se();b(0,"ul",22)(1,"li",26),A(2),D(3,"translate"),f(),b(4,"li",24)(5,"label",27),A(6),D(7,"translate"),f(),b(8,"div",28)(9,"select",29),tt("ngModelChange",function(r){G(t);let n=H(3);return et(n.selectedBlock,r)||(n.selectedBlock=r),Y(r)}),Q("change",function(){G(t);let r=H(3);return Y(r.onBlockChange(r.selectedBlock))}),Zt(10,use,2,2,"option",30,Jt),f()()()()}if(e&2){let t=H(3);m(2),re(B(3,3,"form.label.changes_kept")),m(4),ie(" ",B(7,5,"child_bridge.config.accessory")," "),m(3),Xe("ngModel",t.selectedBlock),m(),Qt(t.configBlocks)}}function pse(e,i){if(e&1&&A(0),e&2){let t=H().$implicit;vr(" ",t.name," \xB7 ",t.username," ")}}function mse(e,i){if(e&1&&A(0),e&2){let t=H().$implicit;ie(" ",t.username," ")}}function hse(e,i){if(e&1&&(b(0,"option",30),U(1,pse,1,2)(2,mse,1,1),f()),e&2){let t=i.$implicit;S("value",t.username),m(),O(t.name?1:2)}}function _se(e,i){if(e&1){let t=se();b(0,"li",24)(1,"label",31),A(2),D(3,"translate"),f(),b(4,"div",28)(5,"select",32,0),Q("change",function(){G(t);let r=Ec(6),n=H(3);return Y(n.onLinkBridgeChange(r.value))}),b(7,"option",30),A(8),D(9,"translate"),f(),Zt(10,hse,3,2,"option",30,Jt),f()()()}if(e&2){let t=H(3);m(2),re(B(3,2,"child_bridge.config.or_link")),m(6),re(B(9,4,"child_bridge.config.select_existing")),m(2),Qt(t.bridgesAvailableForLink)}}function fse(e,i){e&1&&(b(0,"li",24)(1,"label",33),A(2,"Child Bridge"),f(),b(3,"div",34),A(4),D(5,"translate"),f()()),e&2&&(m(4),ie(" ",B(5,1,"child_bridge.config.prevent")," "))}function bse(e,i){if(e&1){let t=se();b(0,"li",25)(1,"span",8),A(2),D(3,"translate"),f(),b(4,"div",35)(5,"input",36),Q("change",function(){G(t);let r=H(3);return Y(r.toggleExternalBridge(r.configBlocks[r.selectedBlock],r.enabledBlocks[r.selectedBlock],r.selectedBlock))}),tt("ngModelChange",function(r){G(t);let n=H(3);return et(n.enabledBlocks[n.selectedBlock],r)||(n.enabledBlocks[n.selectedBlock]=r),Y(r)}),f(),R(6,"label",37),f()()}if(e&2){let t=H(3);m(2),ie(" ",B(3,4,t.currentlySelectedLink?"child_bridge.config.or_link":"child_bridge.config.use")," "),m(3),S("id","toggleExternalBridgeInput_"+t.selectedBlock),Xe("ngModel",t.enabledBlocks[t.selectedBlock]),m(),S("for","toggleExternalBridgeInput_"+t.selectedBlock)}}function yse(e,i){if(e&1&&(b(0,"li",24)(1,"label",33),A(2),D(3,"translate"),f(),b(4,"div",38),A(5),f()()),e&2){let t=H(3);m(2),re(B(3,2,"users.label_username")),m(3),ie(" ",(t.currentlySelectedLink==null?null:t.currentlySelectedLink.username)||(t.configBlocks[t.selectedBlock]._bridge==null?null:t.configBlocks[t.selectedBlock]._bridge.username)," ")}}function vse(e,i){if(e&1){let t=se();b(0,"li",25)(1,"span",8),A(2),D(3,"translate"),b(4,"code"),A(5,"-D"),f()(),b(6,"div",35)(7,"input",46),D(8,"translate"),tt("ngModelChange",function(r){G(t);let n=H(4);return et(n.configBlocks[n.selectedBlock]._bridge.debugModeEnabled,r)||(n.configBlocks[n.selectedBlock]._bridge.debugModeEnabled=r),Y(r)}),f(),R(9,"label",37),f()()}if(e&2){let t=H(4);m(2),ie("",B(3,5,"child_bridge.config.debug")," "),m(5),S("id","homebridgeDebugMode_"+t.selectedBlock),Xe("ngModel",t.configBlocks[t.selectedBlock]._bridge.debugModeEnabled),ge("aria-label",B(8,7,"settings.startup.debug")),m(2),S("for","homebridgeDebugMode_"+t.selectedBlock)}}function wse(e,i){if(e&1){let t=se();b(0,"li",24)(1,"label",33),A(2),D(3,"translate"),f(),b(4,"div",28)(5,"input",39),tt("ngModelChange",function(r){G(t);let n=H(3);return et(n.configBlocks[n.selectedBlock]._bridge.name,r)||(n.configBlocks[n.selectedBlock]._bridge.name=r),Y(r)}),f()()(),b(6,"li",24)(7,"label",33),A(8),D(9,"translate"),f(),b(10,"div",28)(11,"input",40),D(12,"translate"),tt("ngModelChange",function(r){G(t);let n=H(3);return et(n.configBlocks[n.selectedBlock]._bridge.manufacturer,r)||(n.configBlocks[n.selectedBlock]._bridge.manufacturer=r),Y(r)}),f()()(),b(13,"li",24)(14,"label",33),A(15),D(16,"translate"),f(),b(17,"div",28)(18,"input",40),D(19,"translate"),tt("ngModelChange",function(r){G(t);let n=H(3);return et(n.configBlocks[n.selectedBlock]._bridge.model,r)||(n.configBlocks[n.selectedBlock]._bridge.model=r),Y(r)}),f()()(),b(20,"li",24)(21,"label",33),A(22),D(23,"translate"),f(),b(24,"div",28)(25,"input",40),D(26,"translate"),tt("ngModelChange",function(r){G(t);let n=H(3);return et(n.configBlocks[n.selectedBlock]._bridge.firmwareRevision,r)||(n.configBlocks[n.selectedBlock]._bridge.firmwareRevision=r),Y(r)}),f()()(),U(27,vse,10,9,"li",25),b(28,"li",24)(29,"label",33)(30,"span",41),A(31,"DEBUG"),f(),R(32,"br")(33,"small",42),D(34,"translate"),f(),b(35,"div",28)(36,"input",43),tt("ngModelChange",function(r){G(t);let n=H(3);return et(n.configBlocks[n.selectedBlock]._bridge.env.DEBUG,r)||(n.configBlocks[n.selectedBlock]._bridge.env.DEBUG=r),Y(r)}),f()()(),b(37,"li",24)(38,"label",33)(39,"span",41),A(40,"NODE_OPTIONS"),f(),R(41,"br"),b(42,"small",44),A(43),D(44,"translate"),f()(),b(45,"div",28)(46,"input",45),tt("ngModelChange",function(r){G(t);let n=H(3);return et(n.configBlocks[n.selectedBlock]._bridge.env.NODE_OPTIONS,r)||(n.configBlocks[n.selectedBlock]._bridge.env.NODE_OPTIONS=r),Y(r)}),f()()()}if(e&2){let t=H(3);m(2),re(B(3,17,"child_bridge.config.name")),m(3),Xe("ngModel",t.configBlocks[t.selectedBlock]._bridge.name),S("ngClass",vi(36,Q_,t.getHapNameValidationError(t.selectedBlock))),m(3),re(B(9,19,"child_bridge.config.manufacturer")),m(3),S("placeholder",B(12,21,"form.optional")),Xe("ngModel",t.configBlocks[t.selectedBlock]._bridge.manufacturer),m(4),re(B(16,23,"child_bridge.config.model")),m(3),S("placeholder",B(19,25,"form.optional")),Xe("ngModel",t.configBlocks[t.selectedBlock]._bridge.model),m(4),re(B(23,27,"child_bridge.config.firmware")),m(3),S("placeholder",B(26,29,"form.optional")),Xe("ngModel",t.configBlocks[t.selectedBlock]._bridge.firmwareRevision),m(2),O(t.canShowBridgeDebug?27:-1),m(6),S("innerHTML",zt(34,31,"settings.service.debug_tooltip",vi(38,eA,t.linkDebug)),Oe),m(3),Xe("ngModel",t.configBlocks[t.selectedBlock]._bridge.env.DEBUG),m(7),re(B(44,34,"settings.service.node_tooltip")),m(3),Xe("ngModel",t.configBlocks[t.selectedBlock]._bridge.env.NODE_OPTIONS)}}function kse(e,i){e&1&&(b(0,"li",51)(1,"div",53)(2,"div",54)(3,"div")(4,"div",55),R(5,"i",56),f(),b(6,"div",57),A(7),D(8,"translate"),f()()()()()),e&2&&(m(7),re(B(8,1,"child_bridge.return_to_pair")))}function Hse(e,i){e&1&&(b(0,"span"),A(1),D(2,"translate"),f()),e&2&&(m(),ie(" \xB7 ",B(2,1,"status.code_scan")," "))}function Sse(e,i){if(e&1){let t=se();b(0,"li",25)(1,"span",8),A(2),D(3,"translate"),f(),b(4,"div",35)(5,"input",62),D(6,"translate"),Q("change",function(){G(t);let r=H(5);return Y(r.toggleHideUnpairing(r.configBlocks[r.selectedBlock]._bridge==null?null:r.configBlocks[r.selectedBlock]._bridge.username,"hap"))}),f(),R(7,"label",37),f()()}if(e&2){let t=H(5);m(2),re(B(3,5,"child_bridge.config.hide_pairing_alert")),m(3),S("id","toggleHideHapUnpairing_"+t.selectedBlock)("checked",t.isUnpairingHidden(t.configBlocks[t.selectedBlock]._bridge==null?null:t.configBlocks[t.selectedBlock]._bridge.username,"hap")),ge("aria-label",B(6,7,"child_bridge.config.hide_pairing_alert")),m(2),S("for","toggleHideHapUnpairing_"+t.selectedBlock)}}function Cse(e,i){if(e&1&&(b(0,"li",51)(1,"div",53),R(2,"app-qrcode",58),b(3,"p",59),A(4),f(),b(5,"p",60),R(6,"i",61),A(7),D(8,"translate"),U(9,Hse,3,3,"span"),f()()(),U(10,Sse,8,9,"li",25)),e&2){let t,s,r,n,l,c,u=H(4);m(2),S("data",(t=u.deviceInfo.get(u.configBlocks[u.selectedBlock]._bridge==null?null:u.configBlocks[u.selectedBlock]._bridge.username))==null?null:t._setupCode),m(2),ie(" ",(s=u.deviceInfo.get(u.configBlocks[u.selectedBlock]._bridge==null?null:u.configBlocks[u.selectedBlock]._bridge.username))==null?null:s.pincode," "),m(2),S("ngClass",io(8,tA,(r=u.deviceInfo.get(u.configBlocks[u.selectedBlock]._bridge==null?null:u.configBlocks[u.selectedBlock]._bridge.username))==null?null:r._isPaired,!((r=u.deviceInfo.get(u.configBlocks[u.selectedBlock]._bridge==null?null:u.configBlocks[u.selectedBlock]._bridge.username))!=null&&r._isPaired))),m(),ie(" ",B(8,6,(n=u.deviceInfo.get(u.configBlocks[u.selectedBlock]._bridge==null?null:u.configBlocks[u.selectedBlock]._bridge.username))!=null&&n._isPaired?"status.widget.qr_paired":"status.widget.qr_unpaired")," "),m(2),O((l=u.deviceInfo.get(u.configBlocks[u.selectedBlock]._bridge==null?null:u.configBlocks[u.selectedBlock]._bridge.username))!=null&&l._isPaired?-1:9),m(),O((c=u.deviceInfo.get(u.configBlocks[u.selectedBlock]._bridge==null?null:u.configBlocks[u.selectedBlock]._bridge.username))!=null&&c._isPaired?-1:10)}}function xse(e,i){e&1&&(b(0,"span"),A(1),D(2,"translate"),f()),e&2&&(m(),ie(" \xB7 ",B(2,1,"status.code_scan")," "))}function Ise(e,i){if(e&1){let t=se();b(0,"li",25)(1,"span",8),A(2),D(3,"translate"),f(),b(4,"div",35)(5,"input",62),D(6,"translate"),Q("change",function(){G(t);let r=H(7);return Y(r.toggleHideUnpairing(r.configBlocks[r.selectedBlock]._bridge==null?null:r.configBlocks[r.selectedBlock]._bridge.username,"matter"))}),f(),R(7,"label",37),f()()}if(e&2){let t=H(7);m(2),re(B(3,5,"child_bridge.config.hide_pairing_alert")),m(3),S("id","toggleHideMatterUnpairing_"+t.selectedBlock)("checked",t.isUnpairingHidden(t.configBlocks[t.selectedBlock]._bridge==null?null:t.configBlocks[t.selectedBlock]._bridge.username,"matter")),ge("aria-label",B(6,7,"child_bridge.config.hide_pairing_alert")),m(2),S("for","toggleHideMatterUnpairing_"+t.selectedBlock)}}function Tse(e,i){if(e&1&&(b(0,"li",51)(1,"div",53),R(2,"app-qrcode",58),b(3,"p",59),A(4),f(),b(5,"p",60),R(6,"i",61),A(7),D(8,"translate"),U(9,xse,3,3,"span"),f()()(),U(10,Ise,8,9,"li",25)),e&2){let t,s,r,n,l,c,u=H(6);m(2),S("data",(t=u.matterDeviceInfo.get(u.configBlocks[u.selectedBlock]._bridge==null?null:u.configBlocks[u.selectedBlock]._bridge.username))==null?null:t.setupUri),m(2),ie(" ",(s=u.matterDeviceInfo.get(u.configBlocks[u.selectedBlock]._bridge==null?null:u.configBlocks[u.selectedBlock]._bridge.username))==null?null:s.pin," "),m(2),S("ngClass",io(8,tA,(r=u.matterDeviceInfo.get(u.configBlocks[u.selectedBlock]._bridge==null?null:u.configBlocks[u.selectedBlock]._bridge.username))==null?null:r.commissioned,!((r=u.matterDeviceInfo.get(u.configBlocks[u.selectedBlock]._bridge==null?null:u.configBlocks[u.selectedBlock]._bridge.username))!=null&&r.commissioned))),m(),ie(" ",B(8,6,(n=u.matterDeviceInfo.get(u.configBlocks[u.selectedBlock]._bridge==null?null:u.configBlocks[u.selectedBlock]._bridge.username))!=null&&n.commissioned?"status.widget.qr_paired":"status.widget.qr_unpaired")," "),m(2),O((l=u.matterDeviceInfo.get(u.configBlocks[u.selectedBlock]._bridge==null?null:u.configBlocks[u.selectedBlock]._bridge.username))!=null&&l.commissioned?-1:9),m(),O((c=u.matterDeviceInfo.get(u.configBlocks[u.selectedBlock]._bridge==null?null:u.configBlocks[u.selectedBlock]._bridge.username))!=null&&c.commissioned?-1:10)}}function Pse(e,i){e&1&&(b(0,"li",51)(1,"div",53)(2,"div",68)(3,"div")(4,"div",55),R(5,"i",56),f(),b(6,"div",57),A(7),D(8,"translate"),f()()()()()),e&2&&(m(7),re(B(8,1,"child_bridge.return_to_pair")))}function zse(e,i){if(e&1){let t=se();b(0,"li",65)(1,"ul",66)(2,"li"),A(3),D(4,"translate"),f(),b(5,"li"),A(6),D(7,"translate"),f(),b(8,"li"),A(9),D(10,"translate"),f()()(),U(11,Tse,11,11),U(12,Pse,9,3,"li",51),b(13,"li",24)(14,"label",33),A(15),D(16,"translate"),f(),b(17,"div",28)(18,"input",67),tt("ngModelChange",function(r){G(t);let n=H(5);return et(n.configBlocks[n.selectedBlock]._bridge.matter.port,r)||(n.configBlocks[n.selectedBlock]._bridge.matter.port=r),Y(r)}),f()()()}if(e&2){let t,s,r=H(5);m(3),re(B(4,8,"child_bridge.config.matter_note_1")),m(3),re(B(7,10,"child_bridge.config.matter_note_2")),m(3),re(B(10,12,"child_bridge.config.matter_note_3")),m(2),O((t=r.matterDeviceInfo.get(r.configBlocks[r.selectedBlock]._bridge==null?null:r.configBlocks[r.selectedBlock]._bridge.username))!=null&&t.setupUri?11:-1),m(),O(r.matterDeviceInfo.get(r.configBlocks[r.selectedBlock]._bridge==null?null:r.configBlocks[r.selectedBlock]._bridge.username)&&!((s=r.matterDeviceInfo.get(r.configBlocks[r.selectedBlock]._bridge==null?null:r.configBlocks[r.selectedBlock]._bridge.username))!=null&&s.setupUri)?12:-1),m(3),re(B(16,14,"settings.matter.port")),m(3),Xe("ngModel",r.configBlocks[r.selectedBlock]._bridge.matter.port),S("ngClass",vi(16,Q_,r.getMatterPortValidationError(r.selectedBlock)))}}function Ase(e,i){if(e&1){let t=se();b(0,"ul",23)(1,"li",25)(2,"label",33),R(3,"i",63),A(4),D(5,"translate"),b(6,"span",64),A(7),D(8,"translate"),f()(),b(9,"div",35)(10,"input",36),Q("change",function(){G(t);let r=H(4);return Y(r.toggleMatterBridge(r.configBlocks[r.selectedBlock],r.matterEnabledBlocks[r.selectedBlock],r.selectedBlock))}),tt("ngModelChange",function(r){G(t);let n=H(4);return et(n.matterEnabledBlocks[n.selectedBlock],r)||(n.matterEnabledBlocks[n.selectedBlock]=r),Y(r)}),f(),R(11,"label",37),f()(),U(12,zse,19,18),f()}if(e&2){let t=H(4);m(4),ie(" ",B(5,6,"matter_bridge.config.use")," "),m(3),re(B(8,8,"common.labels.beta")),m(3),S("id","toggleMatterBridgeInput_"+t.selectedBlock),Xe("ngModel",t.matterEnabledBlocks[t.selectedBlock]),m(),S("for","toggleMatterBridgeInput_"+t.selectedBlock),m(),O(t.matterEnabledBlocks[t.selectedBlock]&&(t.configBlocks[t.selectedBlock]._bridge!=null&&t.configBlocks[t.selectedBlock]._bridge.matter)&&(t.configBlocks[t.selectedBlock]._bridge!=null&&t.configBlocks[t.selectedBlock]._bridge.username)?12:-1)}}function jse(e,i){if(e&1){let t=se();b(0,"ul",23)(1,"li",25)(2,"span",8),R(3,"i",47),A(4),D(5,"translate"),f(),b(6,"div",48),R(7,"input",49)(8,"label",50),f()(),U(9,kse,9,3,"li",51),U(10,Cse,11,11),b(11,"li",24)(12,"label",33),A(13),D(14,"translate"),f(),b(15,"div",28)(16,"input",52),tt("ngModelChange",function(r){G(t);let n=H(3);return et(n.configBlocks[n.selectedBlock]._bridge.port,r)||(n.configBlocks[n.selectedBlock]._bridge.port=r),Y(r)}),f()()()(),U(17,Ase,13,10,"ul",23)}if(e&2){let t=H(3);m(4),ie(" ",B(5,11,"child_bridge.config.enable_hap")," "),m(3),S("id","toggleHapInput_"+t.selectedBlock)("checked",!0)("disabled",!0),m(),S("for","toggleHapInput_"+t.selectedBlock),m(),O(t.configBlocks[t.selectedBlock]._bridge!=null&&t.configBlocks[t.selectedBlock]._bridge.username&&t.deviceInfo.get(t.configBlocks[t.selectedBlock]._bridge==null?null:t.configBlocks[t.selectedBlock]._bridge.username)===!1?9:-1),m(),O(t.deviceInfo.get(t.configBlocks[t.selectedBlock]._bridge==null?null:t.configBlocks[t.selectedBlock]._bridge.username)?10:-1),m(3),re(B(14,13,"settings.matter.port")),m(3),Xe("ngModel",t.configBlocks[t.selectedBlock]._bridge.port),S("ngClass",vi(15,Q_,t.getHapPortValidationError(t.selectedBlock))),m(),O(t.isMatterSupported&&!t.configBlocks[t.selectedBlock].accessory?17:-1)}}function Dse(e,i){if(e&1&&(b(0,"li",24)(1,"label",33),A(2),D(3,"translate"),f(),b(4,"div",38),A(5),f()(),b(6,"li",24)(7,"label",33),A(8),D(9,"translate"),f(),b(10,"div",38),A(11),f()()),e&2){let t=H(4);m(2),re(B(3,4,"settings.matter.port")),m(3),ie(" ",t.currentlySelectedLink.port," "),m(3),re(B(9,6,"child_bridge.config.name")),m(3),ie(" ",t.currentlySelectedLink.name," ")}}function Nse(e,i){if(e&1&&(b(0,"ul",23)(1,"li",26),A(2,"Using existing child bridge configuration"),f(),U(3,Dse,12,8),f()),e&2){let t=H(3);m(3),O(!(t.configBlocks[t.selectedBlock]._bridge!=null&&t.configBlocks[t.selectedBlock]._bridge.username)||t.deviceInfo.get(t.configBlocks[t.selectedBlock]._bridge==null?null:t.configBlocks[t.selectedBlock]._bridge.username)!==!1?3:-1)}}function Mse(e,i){if(e&1&&(U(0,gse,12,7,"ul",22),b(1,"ul",23),U(2,_se,12,6,"li",24),U(3,fse,6,3,"li",24),U(4,bse,7,6,"li",25),U(5,yse,6,4,"li",24),U(6,wse,47,40),f(),U(7,jse,18,17),U(8,Nse,4,1,"ul",23)),e&2){let t=H(2);O(t.configBlocks.length>1&&!t.isPlatform?0:-1),m(2),O(!(t.configBlocks[t.selectedBlock]._bridge!=null&&t.configBlocks[t.selectedBlock]._bridge.username)&&t.bridgesAvailableForLink.length&&!t.currentBridgeHasLinks?2:-1),m(),O(t.currentBridgeHasLinks?3:-1),m(),O(t.currentBridgeHasLinks?-1:4),m(),O((t.currentlySelectedLink||t.configBlocks[t.selectedBlock]._bridge!=null&&t.configBlocks[t.selectedBlock]._bridge.username)&&(t.currentlySelectedLink||!t.currentBridgeHasLinks)?5:-1),m(),O(!t.currentlySelectedLink&&(t.configBlocks[t.selectedBlock]._bridge!=null&&t.configBlocks[t.selectedBlock]._bridge.username)?6:-1),m(),O(!t.currentlySelectedLink&&(t.configBlocks[t.selectedBlock]._bridge!=null&&t.configBlocks[t.selectedBlock]._bridge.username)?7:-1),m(),O(t.currentlySelectedLink?8:-1)}}function Rse(e,i){e&1&&(A(0),D(1,"translate")),e&2&&ie(" ",B(1,1,"child_bridge.confirm_delete_2")," ")}function Ese(e,i){if(e&1&&(b(0,"li"),R(1,"i",70),A(2),b(3,"span",44),A(4," \xB7 "),f(),b(5,"span",71),A(6),f()()),e&2){let t,s=i.$implicit,r=H(3);m(2),ie(" ",s.bridgeName||((t=r.deviceInfo.get(s.id))==null?null:t.displayName)," "),m(4),re(s.id)}}function Bse(e,i){if(e&1&&(b(0,"li"),R(1,"i",72),A(2),b(3,"span",44),A(4," \xB7 "),f(),b(5,"span",71),A(6),f()()),e&2){let t=i.$implicit;m(2),ie(" ",t.name," "),m(4),re(t.username)}}function Use(e,i){if(e&1&&(b(0,"ngb-alert",19)(1,"p"),A(2),D(3,"translate"),U(4,Rse,2,3),f(),b(5,"div",10)(6,"ul",69),Zt(7,Ese,7,2,"li",null,Jt),Zt(9,Bse,7,2,"li",null,Jt),f()()()),e&2){let t=H(2);S("dismissible",!1),m(2),ie(" ",B(3,3,"child_bridge.confirm_delete_1")," "),m(2),O(t.deletingPairedBridge?4:-1),m(3),Qt(t.deleteBridges),m(2),Qt(t.deleteMatterBridges)}}function Ose(e,i){e&1&&(b(0,"ngb-alert",20),A(1),D(2,"translate"),f()),e&2&&(S("dismissible",!1),m(),ie(" ",B(2,2,"child_bridge.must_configure_plugin")," "))}function Fse(e,i){if(e&1){let t=se();b(0,"ngb-alert",21)(1,"div",17),A(2),D(3,"translate"),D(4,"translate"),f(),b(5,"button",73),Q("click",function(){G(t);let r=H(2);return Y(r.openFullConfigEditor())}),A(6),D(7,"translate"),f()()}e&2&&(S("dismissible",!1),m(2),vr(" ",B(3,4,"plugins.settings.message_manual_config_required")," ",B(4,6,"plugins.settings.message_consult_documentation")," "),m(4),ie(" ",B(7,8,"plugins.settings.label_open_config_editor")," "))}function Vse(e,i){if(e&1){let t=se();b(0,"div",10)(1,"img",16),Q("error",function(){G(t);let r=H();return Y(r.handleIconError())}),f()(),b(2,"ul",17),R(3,"li",18),D(4,"translate"),U(5,dse,4,4),f(),U(6,Mse,9,8),U(7,Use,11,5,"ngb-alert",19),U(8,Ose,3,4,"ngb-alert",20),U(9,Fse,8,10,"ngb-alert",21)}if(e&2){let t=H();m(),S("src",t.plugin.icon,Wy),m(2),S("innerHTML",zt(4,7,"child_bridge.about",vi(10,eA,t.linkChildBridges)),Oe),m(2),O(t.configBlocks.length?5:-1),m(),O(t.canConfigure&&t.configBlocks.length?6:-1),m(),O(t.deleteBridges.length||t.deleteMatterBridges.length?7:-1),m(),O(!t.configBlocks.length&&t.canConfigure?8:-1),m(),O(t.canConfigure?-1:9)}}function qse(e,i){if(e&1){let t=se();b(0,"button",74),Q("click",function(){G(t);let r=H();return Y(r.closeModal())}),A(1),D(2,"translate"),f()}if(e&2){let t=H();S("disabled",t.saveInProgress),m(),ie(" ",B(2,2,"form.button_close")," ")}}function Lse(e,i){e&1&&R(0,"i",76)}function $se(e,i){if(e&1){let t=se();b(0,"button",75),Q("click",function(){G(t);let r=H();return Y(r.save())}),A(1),D(2,"translate"),U(3,Lse,1,0,"i",76),f()}if(e&2){let t=H();S("disabled",t.saveInProgress),m(),ie(" ",B(2,3,"form.button_save")," "),m(2),O(t.saveInProgress?3:-1)}}function Kse(e,i){if(e&1){let t=se();b(0,"button",77),Q("click",function(){G(t);let r=H();return Y(r.closeModal())}),A(1),D(2,"translate"),f()}e&2&&(m(),ie(" ",B(2,1,"form.button_close")," "))}function Wse(e,i){e&1&&(A(0),D(1,"translate")),e&2&&ie(" ",B(1,1,"form.button_save")," ")}function Gse(e,i){e&1&&R(0,"i",76)}function Yse(e,i){if(e&1){let t=se();b(0,"button",75),Q("click",function(){G(t);let r=H(2);return Y(r.save())}),U(1,Wse,2,3),U(2,Gse,1,0,"i",76),f()}if(e&2){let t=H(2);S("disabled",t.saveInProgress||t.loading),m(),O(t.saveInProgress?-1:1),m(),O(t.saveInProgress?2:-1)}}function Jse(e,i){if(e&1){let t=se();b(0,"button",79),Q("click",function(){G(t);let r=H(2);return Y(r.openPluginConfig())}),A(1),D(2,"translate"),f()}e&2&&(m(),ie(" ",B(2,1,"plugins.button_settings")," "))}function Zse(e,i){if(e&1&&(U(0,Yse,3,3,"button",11),U(1,Jse,3,3,"button",78)),e&2){let t=H();O(t.configBlocks.length?0:-1),m(),O(t.configBlocks.length?-1:1)}}var iA=(()=>{class e{$activeModal=j(Ct);$api=j(Ze);$modal=j(ki);$plugin=j(Vr);$router=j(Ts);$settings=j(_t);$toastr=j(nt);$translate=j(ot);plugin;schema;justInstalled=!1;loading=!0;canConfigure=!0;configBlocks=[];selectedBlock="0";isPlatform;enabledBlocks={};bridgeCache=new Map;originalBridges=[];deviceInfo=new Map;matterEnabledBlocks={};matterBridgeCache=new Map;originalMatterBridges=[];matterDeviceInfo=new Map;deleteMatterBridges=[];matterExplicitlyDisabledBeforeChildBridge=new Set;saveInProgress=!1;canShowBridgeDebug=!1;deleteBridges=[];deletingPairedBridge=!1;accessoryBridgeLinks=[];bridgesAvailableForLink=[];currentlySelectedLink=null;currentBridgeHasLinks=!1;isMatterSupported=this.$settings.isFeatureEnabled("matterSupport");defaultIcon="assets/hb-icon.png";linkChildBridges='<a href="https://github.com/homebridge/homebridge/wiki/Child-Bridges" target="_blank"><i class="fas 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-external-link-alt primary-text"></i></a>';hidePairingAlerts=new Set;ngOnInit(){return ue(this,null,function*(){yield Promise.all([this.getPluginType(),this.loadPluginConfig(),this.loadHidePairingAlerts()]),this.canShowBridgeDebug=this.$settings.isFeatureEnabled("childBridgeDebugMode"),this.loading=!1})}handleIconError(){this.plugin.icon=this.defaultIcon}onBlockChange(t){if(this.selectedBlock=t,this.currentlySelectedLink=this.accessoryBridgeLinks.find(s=>s.index===t)||null,this.currentBridgeHasLinks=this.accessoryBridgeLinks.some(s=>s.usesIndex===t),this.bridgesAvailableForLink=[],this.configBlocks[Number(t)].accessory)for(let[s,r]of Array.from(this.bridgeCache.entries()))this.enabledBlocks[s]&&!this.deleteBridges.some(n=>n.id===r.username)&&s<Number(t)&&this.bridgesAvailableForLink.push({index:s.toString(),usesIndex:t,name:r.name,port:r.port,username:r.username})}onLinkBridgeChange(t){if(t){let s=this.configBlocks.findIndex(n=>n._bridge?.username===t);this.accessoryBridgeLinks.push({index:this.selectedBlock,usesIndex:s.toString(),name:this.bridgeCache.get(s)?.name,port:this.bridgeCache.get(s)?.port,username:t}),this.currentlySelectedLink=this.accessoryBridgeLinks.find(n=>n.index===this.selectedBlock)||null,this.enabledBlocks[Number(this.selectedBlock)]=!0;let r=this.configBlocks[Number(this.selectedBlock)];r._bridge={username:t}}}getPluginType(){return ue(this,null,function*(){try{let t=yield Te(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 ue(this,null,function*(){try{this.configBlocks=yield Te(this.$api.get(`/config-editor/plugin/${encodeURIComponent(this.plugin.name)}`));for(let[s,r]of this.configBlocks.entries()){if(r._bridge&&(this.enabledBlocks[s]=!0),r._bridge&&r._bridge.username){let n=Array.from(this.bridgeCache.values()).findIndex(c=>c.username===r._bridge.username),l=n!==-1?Array.from(this.bridgeCache.values())[n]:void 0;if(l)r._bridge.env={},this.accessoryBridgeLinks.push({index:s.toString(),usesIndex:n.toString(),name:l.name,port:l.port,username:r._bridge.username});else{if(r._bridge.env=r._bridge.env||{},this.bridgeCache.set(s,r._bridge),yield this.getDeviceInfo(r._bridge.username),!r._bridge.name){let c=this.deviceInfo.get(r._bridge.username);c&&(r._bridge.name=c.displayName)}this.originalBridges.push(r._bridge)}}r._bridge&&r._bridge.matter&&(r.accessory?delete r._bridge.matter:(this.matterEnabledBlocks[s]=!0,this.matterBridgeCache.set(s,{port:r._bridge.matter.port}),this.originalMatterBridges.push({port:r._bridge.matter.port}),r._bridge.username&&(yield this.getMatterCommissioningInfo(r._bridge.username))))}this.justInstalled&&this.bridgeCache.size===0&&this.configBlocks.forEach((s,r)=>{this.enabledBlocks[r]=!0,this.toggleExternalBridge(s,!0,r.toString())}),this.accessoryBridgeLinks.find(s=>s.username===this.bridgeCache.get(Number(this.selectedBlock))?.username)&&(this.currentBridgeHasLinks=!0)}catch(t){this.canConfigure=!1,console.error(t)}})}toggleExternalBridge(t,s,r){return ue(this,null,function*(){if(s){let n=this.bridgeCache.get(Number(r)),l=this.matterBridgeCache.get(Number(r));if(t._bridge={username:n?n.username:this.generateUsername(),port:yield this.getUnusedPort(),name:n?.name||this.plugin.displayName||this.plugin.name,model:n?.model,manufacturer:n?.manufacturer,firmwareRevision:n?.firmwareRevision,debugModeEnabled:n?.debugModeEnabled,env:n?.env||{}},l&&!this.matterExplicitlyDisabledBeforeChildBridge.has(Number(r))&&(t._bridge.matter={port:l.port??(yield this.getUnusedMatterPort())},this.matterEnabledBlocks[Number(r)]=!0,t._bridge.username&&(this.originalMatterBridges.some(u=>u.port===l.port)?yield this.getMatterCommissioningInfo(t._bridge.username):this.matterDeviceInfo.set(t._bridge.username,{port:l.port})),t._bridge.username)){let c=t._bridge.username.replace(/[^a-z0-9]/gi,"-").replace(/-+/g,"-").replace(/^-|-$/g,"");this.deleteMatterBridges=this.deleteMatterBridges.filter(u=>u.identifier!==c)}this.deleteBridges.some(c=>c.id===t._bridge.username)&&(this.deleteBridges=this.deleteBridges.filter(c=>c.id!==t._bridge.username)),this.matterExplicitlyDisabledBeforeChildBridge.delete(Number(r)),this.bridgeCache.set(Number(r),t._bridge),yield this.getDeviceInfo(t._bridge.username)}else{if(this.enabledBlocks[Number(r)]=!1,t._bridge?.matter&&this.matterEnabledBlocks[Number(r)]&&this.matterBridgeCache.set(Number(r),{port:t._bridge.matter.port}),this.accessoryBridgeLinks.some(n=>n.index===r))this.accessoryBridgeLinks=this.accessoryBridgeLinks.filter(n=>n.index!==r),this.currentlySelectedLink=null;else{let n=this.originalBridges.find(l=>l.username===t._bridge.username);if(n&&!this.deleteBridges.some(l=>l.id===t._bridge.username)){let l=this.deviceInfo.get(t._bridge.username);this.deleteBridges.push({id:t._bridge.username,bridgeName:t._bridge.name||n.displayName,paired:l?l._isPaired:!1})}if(t._bridge?.username){let l=t._bridge.username.replace(/[^a-z0-9]/gi,"-").replace(/-+/g,"-").replace(/^-|-$/g,"");this.deleteMatterBridges.some(u=>u.identifier===l)&&this.matterExplicitlyDisabledBeforeChildBridge.add(Number(r))}if(t._bridge?.matter&&t._bridge.username&&this.originalMatterBridges.some(c=>c.port===t._bridge.matter.port)){let c=t._bridge.username.replace(/[^a-z0-9]/gi,"-").replace(/-+/g,"-").replace(/^-|-$/g,"");if(!this.deleteMatterBridges.some(u=>u.identifier===c)){let u=t._bridge.name||this.plugin.displayName||this.plugin.name;this.deleteMatterBridges.push({username:t._bridge.username,identifier:c,name:u})}}}this.matterEnabledBlocks[Number(r)]=!1,delete t._bridge}this.deletingPairedBridge=this.deleteBridges.some(n=>n.paired)})}getUnusedPort(){return ue(this,null,function*(){try{return(yield Te(this.$api.get("/server/port/new"))).port}catch{return Math.floor(Math.random()*30001+3e4)}})}getUnusedMatterPort(){return ue(this,null,function*(){try{return(yield Te(this.$api.get("/server/port/new/matter"))).port}catch{return Math.floor(Math.random()*12+5530)}})}getDeviceInfo(t){return ue(this,null,function*(){try{this.deviceInfo.set(t,yield Te(this.$api.get(`/server/pairings/${t.replace(/:/g,"")}`)))}catch(s){console.error(s),this.deviceInfo.set(t,!1)}})}getMatterCommissioningInfo(t){return ue(this,null,function*(){try{let r=(yield Te(this.$api.get("/status/homebridge/child-bridges"))).find(n=>n.username===t);r&&r.matterSetupUri?this.matterDeviceInfo.set(t,{setupUri:r.matterSetupUri,pin:r.matterPin,serialNumber:r.matterSerialNumber,commissioned:r.matterCommissioned,deviceCount:r.matterDeviceCount,port:r.matterConfig?.port}):this.matterDeviceInfo.set(t,{port:r?.matterConfig?.port})}catch(s){console.error(s),this.matterDeviceInfo.set(t,{})}})}toggleMatterBridge(t,s,r){return ue(this,null,function*(){if(t.accessory){this.matterEnabledBlocks[Number(r)]=!1;return}if(s){let n=this.matterBridgeCache.get(Number(r));t._bridge||(t._bridge={env:{}});let l;if(n?.port?l=n.port:l=yield this.getUnusedMatterPort(),t._bridge.matter={port:l},this.matterBridgeCache.set(Number(r),{port:l}),t._bridge.username){let c=t._bridge.username.replace(/[^a-z0-9]/gi,"-").replace(/-+/g,"-").replace(/^-|-$/g,"");this.deleteMatterBridges=this.deleteMatterBridges.filter(p=>p.identifier!==c),this.matterExplicitlyDisabledBeforeChildBridge.delete(Number(r)),this.originalMatterBridges.some(p=>p.port===l)?yield this.getMatterCommissioningInfo(t._bridge.username):this.matterDeviceInfo.set(t._bridge.username,{port:l})}}else{this.matterEnabledBlocks[Number(r)]=!1;let n=this.originalMatterBridges.some(l=>t._bridge?.matter&&l.port===t._bridge.matter.port);if(t._bridge&&t._bridge.matter&&(this.matterBridgeCache.set(Number(r),{port:t._bridge.matter.port}),delete t._bridge.matter),t._bridge?.username&&(this.matterDeviceInfo.set(t._bridge.username,null),n)){let l=t._bridge.username.replace(/[^a-z0-9]/gi,"-").replace(/-+/g,"-").replace(/^-|-$/g,""),c=t._bridge.name||this.plugin.displayName||this.plugin.name;this.deleteMatterBridges.push({username:t._bridge.username,identifier:l,name:c})}t._bridge&&Object.keys(t._bridge).length===0&&delete t._bridge}})}getMatterPortValidationError(t){let s=this.configBlocks[Number(t)],r=s._bridge?.matter?.port;if(!r&&r!==0)return!1;if(typeof r!="number"||!Number.isInteger(r)||r<1024||r>65535||[5353,8080,8443].includes(r))return!0;let n=s._bridge?.port;return n&&r===n}getHapNameValidationError(t){let s=this.configBlocks[Number(t)];if(!s._bridge?.name)return!1;let r=s._bridge.name;return!/^[\p{L}\p{N}][\p{L}\p{N} ']*[\p{L}\p{N}]$/u.test(r)}getHapPortValidationError(t){let s=this.configBlocks[Number(t)],r=s._bridge?.port;if(!r&&r!==0)return!1;if(typeof r!="number"||!Number.isInteger(r)||r<1025||r>65533)return!0;let n=s._bridge?.matter?.port;return n&&r===n}normalizeMatterConfig(t){t._bridge?.matter&&(!t._bridge.matter.port&&t._bridge.matter.port!==0&&(t._bridge.matter.port=void 0),t._bridge.matter.port===void 0&&delete t._bridge.matter)}save(){return ue(this,null,function*(){this.saveInProgress=!0;try{for(let[s,r]of this.configBlocks.entries()){if(r._bridge?.username){if(this.getHapNameValidationError(s.toString())){this.$toastr.error(this.$translate.instant("plugins.bridge.name_error"),this.$translate.instant("toast.title_error")),this.saveInProgress=!1;return}if(this.getHapPortValidationError(s.toString())){this.$toastr.error(this.$translate.instant("plugins.bridge.port_error",{type:"HAP"}),this.$translate.instant("toast.title_error")),this.saveInProgress=!1;return}}if(this.matterEnabledBlocks[s]&&this.getMatterPortValidationError(s.toString())){this.$toastr.error(this.$translate.instant("plugins.bridge.port_error",{type:"Matter"}),this.$translate.instant("toast.title_error")),this.saveInProgress=!1;return}this.normalizeMatterConfig(r)}yield Te(this.$api.post(`/config-editor/plugin/${encodeURIComponent(this.plugin.name)}`,this.configBlocks));for(let s of this.deleteBridges)try{yield Te(this.$api.delete(`/server/pairings/${s.id.replace(/:/g,"")}`))}catch(r){console.error(r),this.$toastr.error(this.$translate.instant("settings.reset_bridge.error"),this.$translate.instant("toast.title_error"))}let t=this.deleteMatterBridges.filter(s=>!this.deleteBridges.some(r=>r.id===s.username));for(let s of t)try{let r=s.username.replace(/:/g,"");yield Te(this.$api.delete(`/server/pairings/${r}/matter`))}catch(r){console.error(r),this.$toastr.error(this.$translate.instant("settings.reset_bridge.error"),this.$translate.instant("toast.title_error"))}this.$activeModal.close(),this.$modal.open(Ko,{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.$plugin.settings({name:this.plugin.name,settingsSchema:!0,links:{}})}generateUsername(){let t="0123456789ABCDEF",s="0E:";for(let r=0;r<5;r+=1)s+=t.charAt(Math.round(Math.random()*15)),s+=t.charAt(Math.round(Math.random()*15)),r!==4&&(s+=":");return s}openFullConfigEditor(){this.$router.navigate(["/config"]),this.$activeModal.close()}dismissModal(){this.$activeModal.dismiss("Dismiss")}closeModal(){this.$activeModal.close("Dismiss")}getMatterBridgeName(t){let s=this.configBlocks.find(r=>r._bridge?.username===t);return s?._bridge?.name?s._bridge.name:s.name||s.platform||s.accessory}loadHidePairingAlerts(){return ue(this,null,function*(){try{let t=yield Te(this.$api.get("/config-editor/ui/plugins/hide-pairing-alerts"));this.hidePairingAlerts=new Set(t)}catch(t){console.error("Failed to load hide pairing alerts:",t)}})}isUnpairingHidden(t,s){return this.hidePairingAlerts.has(`${t}-${s}`.toUpperCase())}toggleHideUnpairing(t,s){return ue(this,null,function*(){let r=`${t}-${s}`.toUpperCase(),n=Array.from(this.hidePairingAlerts);this.hidePairingAlerts.has(r)?n=n.filter(l=>l!==r):(n.push(r),n.sort());try{yield Te(this.$api.put("/config-editor/ui/plugins/hide-pairing-alerts",{body:n})),this.hidePairingAlerts=new Set(n),this.$settings.setEnvItem("plugins.hidePairingAlerts",n)}catch(l){console.error("Failed to update hide pairing alerts:",l),this.$toastr.error(l.message,this.$translate.instant("toast.title_error"))}})}static \u0275fac=function(s){return new(s||e)};static \u0275cmp=ve({type:e,selectors:[["ng-component"]],inputs:{plugin:"plugin",schema:"schema",justInstalled:"justInstalled"},decls:16,vars:8,consts:[["bridgeLinkSelect",""],[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-cog","fa-spin",2,"font-size","75px"],["alt","Plugin Icon",1,"mb-3","plugin-icon-card",3,"error","src"],[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","list-group-box","mt-3","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","flex-row","pb-2"],[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"],["for","bridgeLink",1,"mb-2","mb-md-0","w-100","w-md-50"],["id","bridgeLink",1,"custom-select",3,"change"],[1,"mb-2","mb-md-0","w-100","w-md-50"],[1,"text-start","text-md-end","w-100","w-md-50","grey-text"],[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"],[1,"text-start","text-md-end","w-100","w-md-50","grey-text","font-monospace"],["type","text",1,"form-control","custom-input",3,"ngModelChange","ngModel","ngClass"],["type","text",1,"form-control","custom-input",3,"ngModelChange","placeholder","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,"fas","fa-xl","fa-hap","me-2","my-2"],[1,"text-end","grey-text","d-flex","align-items-center",2,"opacity","0.5","cursor","not-allowed"],["type","checkbox",1,"rendux-input",2,"pointer-events","none",3,"id","checked","disabled"],[1,"rendux-label",2,"cursor","not-allowed",3,"for"],[1,"list-group-item","text-center"],["type","number","min","1025","max","65533",1,"form-control","custom-input",3,"ngModelChange","ngModel","ngClass"],[1,"w-100","d-flex","flex-column","text-center"],[1,"mx-auto","d-flex","align-items-center","justify-content-center","qr-code-placeholder","primary-text","p-3"],[1,"text-center","grey-text"],[1,"fas","fa-qrcode","fa-2x","mb-2","primary-text"],[1,"text-center","small","grey-text"],[1,"mx-auto",2,"width","175px","height","175px",3,"data"],[1,"mx-auto","mt-3","mb-1","font-monospace"],[1,"grey-text","mx-auto","small","mb-1",2,"max-width","400px"],[1,"fas","fa-link",3,"ngClass"],["type","checkbox",1,"rendux-input",3,"change","id","checked"],[1,"fas","fa-xl","fa-matter","me-2","my-2"],[1,"badge","badge-primary","ms-1"],[1,"list-group-item"],[1,"grey-text","small"],["type","number","min","1024","max","65535","placeholder","e.g. 5540",1,"form-control","custom-input",3,"ngModelChange","ngModel","ngClass"],[1,"mx-auto","d-flex","align-items-center","justify-content-center","qr-code-placeholder","primary-text"],[1,"d-inline-block","text-start","mb-0"],[1,"fas","fa-lg","fa-hap","me-1"],[1,"grey-text","font-monospace"],[1,"fas","fa-lg","fa-matter","me-1"],[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-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(s,r){s&1&&(b(0,"div",1)(1,"div",2)(2,"h5",3),A(3),f(),U(4,ase,2,4,"button",4),f(),b(5,"div",5),U(6,lse,2,0,"div",6),U(7,Vse,10,12),f(),b(8,"div",7)(9,"div",8),U(10,qse,3,4,"button",9),f(),b(11,"div",10),U(12,$se,4,5,"button",11),U(13,Kse,3,3,"button",12),f(),b(14,"div",13),U(15,Zse,2,2),f()()()),s&2&&(m(3),re(r.plugin.displayName||r.plugin.name),m(),O(r.justInstalled?-1:4),m(2),O(r.loading?6:-1),m(),O(r.loading?-1:7),m(3),O(r.canConfigure&&!r.justInstalled?10:-1),m(2),O(r.justInstalled?12:-1),m(),O(r.canConfigure?-1:13),m(2),O(r.canConfigure&&!r.justInstalled?15:-1))},dependencies:[us,Cr,xr,ro,cv,Hr,Fo,ei,gv,uv,Ji,Vo,Iv,wi,xt],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}.qr-code-placeholder[_ngcontent-%COMP%]{width:175px;height:175px;border:2px solid currentColor;border-radius:8px;background-color:#f8f9fa;padding:20px} body.dark-mode .qr-code-placeholder, [class*=config-ui-x-dark-mode] .qr-code-placeholder{background-color:#1a1a1a}"]})}return e})();var X_=lt(Kc(),1);var Su=()=>["homebridge","homebridge-config-ui-x"],sA=(e,i,t)=>({pluginName:e,minVersion:i,installedVersion:t}),Qse=(e,i,t)=>({minVersion:e,installedVersion:i,latestVersion:t,packageName:"Homebridge"}),Xse=()=>({packageName:"Homebridge"}),ere=(e,i,t)=>({minVersion:e,installedVersion:i,latestVersion:t,packageName:"Homebridge UI"}),tre=()=>({packageName:"Homebridge UI"});function ire(e,i){if(e&1&&(b(0,"li",14)(1,"div",17),R(2,"i",18),f(),b(3,"div",19),A(4),D(5,"translate"),f()()),e&2){let t=H(2);m(4),ie(" ",zt(5,1,"plugins.compat.node_too_low",di(4,sA,t.plugin.displayName,t.nodeMinVersion,t.nodeInstalledVersion))," ")}}function sre(e,i){if(e&1&&(b(0,"li",14)(1,"div",17),R(2,"i",18),f(),b(3,"div",19),A(4),D(5,"translate"),f()()),e&2){let t=H(2);m(4),ie(" ",zt(5,1,"plugins.compat.hb_too_low",di(4,sA,t.plugin.displayName,t.hbMinVersion,t.hbInstalledVersion))," ")}}function rre(e,i){if(e&1&&(b(0,"div",11),R(1,"i",12),f(),b(2,"ul",13),U(3,ire,6,8,"li",14),U(4,sre,6,8,"li",14),f(),b(5,"ngb-alert",15)(6,"p",16),A(7),D(8,"translate"),f()()),e&2){let t=H();m(),he(Jy("",t.action==="install"?"far fa-arrow-alt-circle-down":t.action==="update"?"far fa-arrow-alt-circle-up":"fas fa-code-compare"," primary-text")),m(2),O(t.isValidNode?-1:3),m(),O(t.isValidHb?-1:4),m(),S("dismissible",!1),m(2),re(B(8,7,"common.phrases.are_you_sure"))}}function ore(e,i){if(e&1&&(b(0,"div",11),R(1,"i",20),f(),b(2,"ul",13)(3,"li",14)(4,"div",17),R(5,"i",18),f(),b(6,"div",19),A(7),D(8,"translate"),f()()(),b(9,"ngb-alert",15)(10,"p",21),A(11),D(12,"translate"),f(),b(13,"p",16)(14,"a",22),A(15),D(16,"translate"),R(17,"i",23),f()()()),e&2){let t=H();m(7),ie(" ",zt(8,4,"plugins.compat.hb_node_too_low",di(12,Qse,t.nodeMinVersion,t.nodeInstalledVersion,t.plugin.latestVersion))," "),m(2),S("dismissible",!1),m(2),re(zt(12,7,"plugins.compat.node_first",rt(16,Xse))),m(4),ie(" ",B(16,10,"plugins.compat.node_link")," ")}}function nre(e,i){if(e&1&&(b(0,"div",11),R(1,"i",20),f(),b(2,"ul",13)(3,"li",14)(4,"div",17),R(5,"i",18),f(),b(6,"div",19),A(7),D(8,"translate"),f()()(),b(9,"ngb-alert",15)(10,"p",21),A(11),D(12,"translate"),f(),b(13,"p",16)(14,"a",22),A(15),D(16,"translate"),R(17,"i",23),f()()()),e&2){let t=H();m(7),ie(" ",zt(8,4,"plugins.compat.hb_node_too_low",di(12,ere,t.nodeMinVersion,t.nodeInstalledVersion,t.plugin.latestVersion))," "),m(2),S("dismissible",!1),m(2),re(zt(12,7,"plugins.compat.node_first",rt(16,tre))),m(4),ie(" ",B(16,10,"plugins.compat.node_link")," ")}}function are(e,i){if(e&1){let t=se();b(0,"button",24),Q("click",function(){G(t);let r=H();return Y(r.dismissModal())}),A(1),D(2,"translate"),f()}e&2&&(m(),ie(" ",B(2,1,"form.button_close")," "))}function lre(e,i){if(e&1){let t=se();b(0,"button",24),Q("click",function(){G(t);let r=H();return Y(r.dismissModal())}),A(1),D(2,"translate"),f()}e&2&&(m(),ie(" ",B(2,1,"form.button_close")," "))}function cre(e,i){if(e&1){let t=se();b(0,"button",25),Q("click",function(){G(t);let r=H();return Y(r.closeModal())}),A(1),D(2,"translate"),f()}e&2&&(m(),ie(" ",B(2,1,"form.button_continue")," "))}var rA=(()=>{class e{$activeModal=j(Ct);$settings=j(_t);plugin;isValidNode;isValidHb;action;nodeMinVersion;nodeInstalledVersion;hbMinVersion;hbInstalledVersion;ngOnInit(){this.nodeMinVersion=(0,X_.minVersion)(this.plugin.updateEngines?.node),this.nodeInstalledVersion=this.$settings.env.nodeVersion,this.hbMinVersion=(0,X_.minVersion)(this.plugin.updateEngines?.homebridge),this.hbInstalledVersion=this.$settings.env.homebridgeVersion}dismissModal(){this.$activeModal.dismiss("Dismiss")}closeModal(){this.$activeModal.close(!0)}static \u0275fac=function(s){return new(s||e)};static \u0275cmp=ve({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-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-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(s,r){s&1&&(b(0,"div",0)(1,"div",1)(2,"h5",2),A(3),D(4,"translate"),f(),b(5,"button",3),D(6,"translate"),Q("click",function(){return r.dismissModal()}),f()(),b(7,"div",4),U(8,rre,9,9),U(9,ore,18,17),U(10,nre,18,17),f(),b(11,"div",5)(12,"div",6),U(13,are,3,3,"button",7),f(),b(14,"div",8),U(15,lre,3,3,"button",7),f(),b(16,"div",9),U(17,cre,3,3,"button",10),f()()()),s&2&&(m(3),re(B(4,8,"plugins.compat.title")),m(2),ge("aria-label",B(6,10,"form.button_close")),m(3),O(rt(12,Su).includes(r.plugin.name)?-1:8),m(),O(r.plugin.name==="homebridge"?9:-1),m(),O(r.plugin.name==="homebridge-config-ui-x"?10:-1),m(3),O(rt(13,Su).includes(r.plugin.name)?-1:13),m(2),O(rt(14,Su).includes(r.plugin.name)?15:-1),m(2),O(rt(15,Su).includes(r.plugin.name)?-1:17))},dependencies:[Vo,xt],encapsulation:2})}return e})();var oA=lt(ga(),1);var nA=(()=>{class e{$api=j(Ze);$toastr=j(nt);$translate=j(ot);downloadDumpFile(){this.$api.get("/plugins/custom-plugins/homebridge-deconz/dump-file",{observe:"response",responseType:"blob"}).subscribe({next:t=>{(0,oA.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(s){return new(s||e)};static \u0275cmp=ve({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-download"]],template:function(s,r){s&1&&(na(0,"button",0),Dc("click",function(){return r.downloadDumpFile()}),la(1,"i",1),A(2,` Download Dump File
|
|
45
45
|
`),aa())},encapsulation:2})}return e})();var aA=lt(ga(),1);var lA=(()=>{class e{$api=j(Ze);$translate=j(ot);$toastr=j(nt);downloadDumpFile(){this.$api.get("/plugins/custom-plugins/homebridge-hue/dump-file",{observe:"response",responseType:"blob"}).subscribe({next:t=>{(0,aA.saveAs)(t.body,"homebridge-hue.json.gz")},error:t=>{console.error(t),this.$toastr.error(this.$translate.instant("plugins.settings.hue.dump_no_exist"),this.$translate.instant("toast.title_error"))}})}static \u0275fac=function(s){return new(s||e)};static \u0275cmp=ve({type:e,selectors:[["app-homebridge-hue"]],decls:3,vars:0,consts:[["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant","m-0",3,"click"],[1,"fas","fa-download"]],template:function(s,r){s&1&&(na(0,"button",0),Dc("click",function(){return r.downloadDumpFile()}),la(1,"i",1),A(2,` Download Dump File
|
|
46
46
|
`),aa())},encapsulation:2})}return e})();var cA=(e,i,t)=>({"fa-circle-check green-text":e,"fa-circle-exclamation red-text":i,"fa-circle-exclamation orange-text":t});function dre(e,i){if(e&1&&(R(0,"markdown",5),D(1,"interpolateMd")),e&2){let t=H();S("data",B(1,1,t.schema.headerDisplay))}}function ure(e,i){if(e&1){let t=se();b(0,"button",31),D(1,"translate"),Q("click",function(){G(t);let r=H().$implicit,n=H(2);return Y(n.removeBlock(r.__uuid__))}),R(2,"i",32),f()}e&2&&S("ngbTooltip",B(1,2,"form.button_delete"))("openDelay",150)}function gre(e,i){if(e&1){let t=se();b(0,"div",19)(1,"div",20)(2,"div",21)(3,"h5",22),A(4),f(),b(5,"div",23),U(6,ure,3,4,"button",24),b(7,"button",25),D(8,"translate"),R(9,"i",26),f(),R(10,"i",27),D(11,"translate"),f()()(),b(12,"div",28)(13,"div",29)(14,"app-schema-form",30),tt("dataChange",function(r){let n=G(t).$implicit;return et(n.config,r)||(n.config=r),Y(r)}),Q("isValid",function(r){let n=G(t).$index,l=H(2);return Y(l.onIsValid(r,n))}),f()()()()}if(e&2){let t=i.$implicit,s=i.$index,r=H(2);S("ngbAccordionItem",t.__uuid__)("collapsed",r.show!==t.__uuid__)("id",t.__uuid__),m(4),re(t.name),m(2),O(r.plugin.name!=="homebridge-config-ui-x"&&r.show===t.__uuid__?6:-1),m(),S("ngbTooltip",B(8,12,"form.button_edit"))("openDelay",150),m(3),S("ngClass",di(16,cA,r.formBlocksValid[s],r.strictValidation&&!r.formBlocksValid[s],!r.strictValidation&&!r.formBlocksValid[s]))("ngbTooltip",B(11,14,r.formBlocksValid[s]?"form.label_valid":r.strictValidation?"form.label_invalid_strict":"form.label_invalid"))("openDelay",150),m(4),S("configSchema",r.schema),Xe("data",t.config)}}function pre(e,i){if(e&1){let t=se();b(0,"div",18),Q("show",function(r){G(t);let n=H();return Y(n.blockShown(r))})("hide",function(r){G(t);let n=H();return Y(n.blockHidden(r))}),Zt(1,gre,15,20,"div",19,Jt),f()}if(e&2){let t=H();S("closeOthers",!0),m(),Qt(t.pluginConfig)}}function mre(e,i){e&1&&R(0,"app-homebridge-deconz")}function hre(e,i){e&1&&R(0,"app-homebridge-hue")}function _re(e,i){if(e&1){let t=se();b(0,"div",7)(1,"app-schema-form",30),tt("dataChange",function(r){G(t);let n=H();return et(n.pluginConfig[0].config,r)||(n.pluginConfig[0].config=r),Y(r)}),Q("isValid",function(r){G(t);let n=H();return Y(n.onIsValid(r,0))}),f(),U(2,mre,1,0,"app-homebridge-deconz"),U(3,hre,1,0,"app-homebridge-hue"),f()}if(e&2){let t=H();m(),S("configSchema",t.schema),Xe("data",t.pluginConfig[0].config),m(),O(t.plugin.name==="homebridge-deconz"?2:-1),m(),O(t.plugin.name==="homebridge-hue"?3:-1)}}function fre(e,i){if(e&1&&(b(0,"div",8),R(1,"markdown",5),D(2,"interpolateMd"),f()),e&2){let t=H();m(),S("data",B(2,1,t.schema.footerDisplay))}}function bre(e,i){if(e&1&&(R(0,"i",14),D(1,"translate")),e&2){let t=H();S("ngClass",di(5,cA,t.formIsValid,t.strictValidation&&!t.formIsValid,!t.strictValidation&&!t.formIsValid))("ngbTooltip",B(1,3,t.formIsValid?"form.label_valid":t.strictValidation?"form.label_invalid_strict":"form.label_invalid"))("openDelay",150)}}function yre(e,i){if(e&1){let t=se();b(0,"button",33),Q("click",function(){G(t);let r=H();return Y(r.addBlock())}),R(1,"i",34),f()}}function vre(e,i){e&1&&(b(0,"span"),A(1),D(2,"translate"),f()),e&2&&(m(),re(B(2,1,"form.button_save")))}function wre(e,i){e&1&&R(0,"i",17)}var dA=(()=>{class e{$activeModal=j(Ct);$api=j(Ze);$cb=j(Wo);$plugin=j(Vr);$settings=j(_t);$toastr=j(nt);$translate=j(ot);plugin;schema;pluginAlias;pluginType;pluginConfig=[];form={};show="";saveInProgress;isFirstSave=!1;formBlocksValid={};formIsValid=!0;strictValidation=!1;ngOnInit(){this.pluginAlias=this.schema.pluginAlias,this.pluginType=this.schema.pluginType,this.strictValidation=this.schema.strictValidation,this.loadPluginConfig()}save(){return ue(this,null,function*(){this.saveInProgress=!0;let t=this.pluginConfig.map(s=>s.config);try{let s=yield Te(this.$api.post(`/config-editor/plugin/${encodeURIComponent(this.plugin.name)}`,t));if(this.saveInProgress=!1,this.plugin.name==="homebridge-config-ui-x")this.$settings.getAppSettings().catch(()=>{});else if(this.isFirstSave&&this.$settings.env.recommendChildBridges&&s[0]?.platform){this.$activeModal.close(),this.$plugin.bridgeSettings(this.plugin,!0);return}this.$activeModal.close(),yield this.$cb.openCorrectRestartModalForPlugin(this.plugin.name)}catch(s){console.error(s),this.$toastr.error(this.$translate.instant("config.failed_to_save_config"),this.$translate.instant("toast.title_error")),this.saveInProgress=!1}})}blockShown(t){this.show=t;for(let s of this.pluginConfig)s.name=s.config.name||s.name}blockHidden(t){this.show===t&&(this.show="")}addBlock(){let t=Tn();this.pluginConfig.push({__uuid__:t,name:this.schema.pluginAlias,config:{[this.pluginType]:this.schema.pluginAlias}}),this.formBlocksValid[this.pluginConfig.length-1]=!1,this.blockShown(t)}removeBlock(t){let s=this.pluginConfig.findIndex(r=>r.__uuid__===t);this.pluginConfig.splice(s,1),delete this.formBlocksValid[s],Object.keys(this.formBlocksValid).length||(this.formIsValid=!0)}onIsValid(t,s){this.formBlocksValid[s]=t,this.formIsValid=Object.values(this.formBlocksValid).every(r=>r)}dismissModal(){this.$activeModal.dismiss("Dismiss")}closeModal(){this.$activeModal.close()}loadPluginConfig(){this.$api.get(`/config-editor/plugin/${encodeURIComponent(this.plugin.name)}`).subscribe({next:t=>{for(let s of t){let r={__uuid__:Tn(),name:s.name||this.schema.pluginAlias,config:s};this.pluginConfig.push(r)}this.pluginConfig.length?this.show=this.pluginConfig[0].__uuid__:(this.isFirstSave=!0,this.addBlock()),this.plugin.name==="homebridge-hue"&&this.pluginConfig.length&&this.homebridgeHueFix(this.pluginConfig[0].config)},error:t=>{console.error(t),this.$toastr.error(t.error?.message||this.$translate.instant("plugins.config.load_error"),this.$translate.instant("toast.title_error"))}})}homebridgeHueFix(t){if(this.schema.schema.properties.users={type:"object",properties:{}},!(!t.users||typeof t.users!="object"))for(let s of Object.keys(t.users))this.schema.schema.properties.users.properties[s]={type:"string"}}static \u0275fac=function(s){return new(s||e)};static \u0275cmp=ve({type:e,selectors:[["ng-component"]],inputs:{plugin:"plugin",schema:"schema"},decls:23,vars:18,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,"plugin-md",3,"data"],["ngbAccordion","",3,"closeOthers"],[1,"card","card-body"],[1,"mt-3"],[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-xl","me-2",3,"ngClass","ngbTooltip","openDelay"],["type","button","data-dismiss","modal",1,"btn","btn-elegant","me-2"],["type","button","data-bs-dismiss","modal",1,"btn","btn-primary",3,"click","disabled"],[1,"fas","fa-spinner","fa-pulse"],["ngbAccordion","",3,"show","hide","closeOthers"],[1,"card",3,"ngbAccordionItem","collapsed","id"],["ngbAccordionHeader","",1,"card-header"],[1,"d-flex","align-items-center","justify-content-between"],[1,"m-0"],[1,"d-flex","align-items-center"],["container","modal","placement","left","triggers","hover",1,"btn","btn-danger","ms-2",3,"ngbTooltip","openDelay"],["ngbAccordionToggle","","container","modal","placement","left","triggers","hover",1,"btn","btn-primary","ms-2","me-2",3,"ngbTooltip","openDelay"],[1,"fa","fa-edit"],["container","modal","placement","left","triggers","hover",1,"fa","fa-xl",3,"ngClass","ngbTooltip","openDelay"],["ngbAccordionCollapse",""],["ngbAccordionBody","",1,"card-body"],[3,"dataChange","isValid","configSchema","data"],["container","modal","placement","left","triggers","hover",1,"btn","btn-danger","ms-2",3,"click","ngbTooltip","openDelay"],[1,"fa","fa-trash"],["type","button","data-dismiss","modal",1,"btn","btn-elegant","me-2",3,"click"],[1,"fa","fa-plus"]],template:function(s,r){s&1&&(b(0,"div",0)(1,"div",1)(2,"h5",2),A(3),f(),b(4,"button",3),D(5,"translate"),Q("click",function(){return r.dismissModal()}),f()(),b(6,"div",4),U(7,dre,2,3,"markdown",5),U(8,pre,3,1,"div",6),U(9,_re,4,4,"div",7),U(10,fre,3,3,"div",8),f(),b(11,"div",9)(12,"div",10)(13,"button",11),Q("click",function(){return r.closeModal()}),A(14),D(15,"translate"),f()(),R(16,"div",12),b(17,"div",13),U(18,bre,2,9,"i",14),U(19,yre,2,0,"button",15),b(20,"button",16),Q("click",function(){return r.save()}),U(21,vre,3,3,"span"),U(22,wre,1,0,"i",17),f()()()()),s&2&&(m(3),re(r.plugin.displayName||r.plugin.name),m(),S("disabled",r.saveInProgress),ge("aria-label",B(5,14,"form.button_close")),m(3),O(r.schema.headerDisplay?7:-1),m(),O(r.pluginConfig.length&&!r.schema.singular?8:-1),m(),O(r.pluginConfig.length&&r.schema.singular?9:-1),m(),O(r.schema.footerDisplay?10:-1),m(3),S("disabled",r.saveInProgress),m(),ie(" ",B(15,16,"form.button_close")," "),m(4),O(r.schema.singular?18:-1),m(),O(r.schema.singular?-1:19),m(),S("disabled",r.saveInProgress||!r.formIsValid&&r.strictValidation),m(),O(r.saveInProgress?-1:21),m(),O(r.saveInProgress?22:-1))},dependencies:[Lo,qo,$o,$c,Lc,qc,Ir,Fc,Oc,wi,ku,nA,lA,Vc,xt,Hu],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 kre=(e,i)=>({"btn-danger":e,"btn-elegant":i}),Hre=(e,i,t)=>({"fa-broom":e,"fa-undo":i,"fa-spinner fa-pulse":t});function Sre(e,i){e&1&&(b(0,"div",12),R(1,"i",13),f(),b(2,"p",14),A(3),D(4,"translate"),f()),e&2&&(m(3),re(B(4,1,"reset.bridge_accessories.empty")))}function Cre(e,i){if(e&1&&R(0,"i",26)(1,"i",27),e&2){let t=H().$implicit;ci("opacity",t._protocol==="matter"&&t._matterOnly?"0.25":"1"),m(),ci("opacity",t._protocol==="matter"?"1":"0.25")}}function xre(e,i){e&1&&R(0,"i",20)}function Ire(e,i){if(e&1){let t=se();b(0,"li",18)(1,"span",19),U(2,Cre,2,4)(3,xre,1,0,"i",20),f(),b(4,"span",21),A(5),R(6,"br"),b(7,"small",22)(8,"span",23),A(9),f()()(),b(10,"button",24),D(11,"translate"),Q("click",function(){let r=G(t).$implicit,n=H(2);return Y(n.toggleList(r._id,r._protocol))}),R(12,"i",25),f()()}if(e&2){let t=i.$implicit,s=H(2);m(2),O(s.isMatterSupported?2:3),m(3),ie(" ",t.name," "),m(4),re(t._username),m(),S("disabled",s.clicked)("ngClass",io(9,kre,!s.isInList(t._id,t._protocol),s.isInList(t._id,t._protocol))),ge("aria-label",B(11,7,"form.button_delete")),m(2),S("ngClass",di(12,Hre,!s.isInList(t._id,t._protocol),s.isInList(t._id,t._protocol)&&!s.clicked,s.isInList(t._id,t._protocol)&&s.clicked))}}function Tre(e,i){if(e&1&&(b(0,"div",12),R(1,"i",15),f(),b(2,"ul",16)(3,"li"),A(4),D(5,"translate"),f(),b(6,"li"),A(7),D(8,"translate"),f()(),b(9,"ul",17),Zt(10,Ire,13,16,"li",18,Jt),f()),e&2){let t=H();m(4),re(B(5,2,"reset.bridge_accessories.list_1")),m(3),re(B(8,4,"reset.clear_cache_single.list_3")),m(3),Qt(t.pairings)}}function Pre(e,i){if(e&1){let t=se();b(0,"button",28),Q("click",function(){G(t);let r=H();return Y(r.dismissModal())}),A(1),D(2,"translate"),f()}if(e&2){let t=H();S("disabled",t.clicked),m(),ie(" ",B(2,2,"form.button_close")," ")}}function zre(e,i){if(e&1){let t=se();b(0,"button",29),Q("click",function(){G(t);let r=H();return Y(r.dismissModal())}),A(1),D(2,"translate"),f()}e&2&&(m(),ie(" ",B(2,1,"form.button_close")," "))}function Are(e,i){if(e&1&&A(0),e&2){let t=H(3);ie(" (",t.toDelete.length,") ")}}function jre(e,i){if(e&1&&(A(0),D(1,"translate"),U(2,Are,1,1)),e&2){let t=H(2);ie(" ",B(1,2,"form.button_reset")," "),m(2),O(t.toDelete.length>0?2:-1)}}function Dre(e,i){e&1&&R(0,"i",31)}function Nre(e,i){if(e&1){let t=se();b(0,"button",30),Q("click",function(){G(t);let r=H();return Y(r.cleanBridges())}),U(1,jre,3,4),U(2,Dre,1,0,"i",31),f()}if(e&2){let t=H();S("disabled",!t.toDelete.length||t.clicked),m(),O(t.clicked?-1:1),m(),O(t.clicked?2:-1)}}var uA=(()=>{class e{$activeModal=j(Ct);$api=j(Ze);$router=j(Ts);$settings=j(_t);$toastr=j(nt);$translate=j(ot);isMatterSupported=this.$settings.isFeatureEnabled("matterSupport");childBridges=[];clicked=!1;pairings=[];toDelete=[];ngOnInit(){this.loadPairings()}toggleList(t,s){this.toDelete.some(r=>r.id===t&&r.protocol===s)?this.toDelete=this.toDelete.filter(r=>r.id!==t||r.protocol!==s):this.toDelete.push({id:t,protocol:s})}isInList(t,s){return this.toDelete.some(r=>r.id===t&&r.protocol===s)}cleanBridges(){return this.clicked=!0,this.$api.delete("/server/pairings/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:t=>{this.clicked=!1,console.error(t),this.$toastr.error(this.$translate.instant("reset.accessory_ind.fail"),this.$translate.instant("toast.title_error"))}})}dismissModal(){this.$activeModal.dismiss("Dismiss")}loadPairings(){return ue(this,null,function*(){try{let t=yield Te(this.$api.get("/server/pairings")),s=this.childBridges.length>0?this.childBridges[0].plugin:null,r=t.filter(l=>l._category==="bridge"&&!l._main&&this.childBridges.find(c=>c.username===l._username)).sort((l,c)=>l.name.localeCompare(c.name)),n=t.filter(l=>l._matterOnly&&l._plugin===s).sort((l,c)=>l.name.localeCompare(c.name));this.pairings=[];for(let l of r)this.pairings.push(qe(fe({},l),{_protocol:"hap",_displayName:l.name})),this.isMatterSupported&&l._matter&&this.pairings.push(qe(fe({},l),{_protocol:"matter",_displayName:l.name}));if(this.isMatterSupported)for(let l of n)this.pairings.push(qe(fe({},l),{_protocol:"matter",_displayName:l.name}))}catch(t){console.error(t),this.$toastr.error(this.$translate.instant("settings.unpair_bridge.load_error"),this.$translate.instant("toast.title_error")),this.$activeModal.close()}})}static \u0275fac=function(s){return new(s||e)};static \u0275cmp=ve({type:e,selectors:[["ng-component"]],inputs:{childBridges:"childBridges"},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-circle-check","primary-text",2,"font-size","75px"],[1,"mb-0","text-center"],[1,"fas","fa-broom","primary-text",2,"font-size","75px"],[1,"mb-3"],[1,"list-group","list-group-box","mb-0"],[1,"list-group-item","d-flex","justify-content-between","align-items-center"],[1,"me-3"],[1,"fas","fa-lg","fa-hap"],[1,"flex-grow-1"],[1,"grey-text"],[1,"font-monospace"],[1,"btn","btn-danger","m-0","ms-3",3,"click","disabled","ngClass"],[1,"fas",3,"ngClass"],[1,"fas","fa-lg","fa-hap","me-2"],[1,"fas","fa-lg","fa-matter"],["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-spinner","fa-pulse"]],template:function(s,r){s&1&&(b(0,"div",0)(1,"div",1)(2,"h5",2),A(3),D(4,"translate"),f(),b(5,"button",3),D(6,"translate"),Q("click",function(){return r.dismissModal()}),f()(),b(7,"div",4),U(8,Sre,5,3),U(9,Tre,12,6),f(),b(10,"div",5)(11,"div",6),U(12,Pre,3,4,"button",7),f(),b(13,"div",8),U(14,zre,3,3,"button",9),f(),b(15,"div",10),U(16,Nre,3,3,"button",11),f()()()),s&2&&(m(3),re(B(4,8,"child_bridge.reset_accessories")),m(2),S("disabled",r.clicked),ge("aria-label",B(6,10,"form.button_close")),m(3),O(r.pairings.length===0?8:-1),m(),O(r.pairings.length>0?9:-1),m(3),O(r.pairings.length>0?12:-1),m(2),O(r.pairings.length===0?14:-1),m(2),O(r.pairings.length>0?16:-1))},dependencies:[wi,xt],encapsulation:2})}return e})();var pA=lt(wv(),1),mA=lt(kv(),1),hA=lt(Hv(),1),_A=lt(ga(),1);var Mre=e=>({prefix:e}),Rre=e=>({link:e}),gA=(e,i,t,s)=>({"fa-circle-o":e,"fa-spinner fa-pulse":i,"fa-check-circle green-text":t,"fa-times-circle red-text":s}),Ere=(e,i,t)=>({"fa-circle-o":e,"fa-spinner fa-pulse":i,"fa-times-circle red-text":t});function Bre(e,i){e&1&&(b(0,"li"),A(1),D(2,"translate"),f()),e&2&&(m(),re(B(2,1,"plugins.manage.scoped.process")))}function Ure(e,i){e&1&&(R(0,"li",8),D(1,"translate"),b(2,"li"),A(3),D(4,"translate"),f()),e&2&&(S("innerHTML",B(1,2,"plugins.manage.scoped.windows"),Oe),m(3),re(B(4,4,"plugins.manage.manual_update_command")))}function Ore(e,i){if(e&1&&(b(0,"pre",9),A(1),f()),e&2){let t=H();m(),Bc(`hb-service stop
|
|
47
47
|
npm install -g `,t.plugin.newHbScope.to,"@",t.plugin.newHbScope.switch,`
|