zigbee2mqtt-windfront 1.6.0 → 1.8.0
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/assets/{About-4agra-GV.js → About-CZjwfsW-.js} +2 -2
- package/dist/assets/About-CZjwfsW-.js.br +0 -0
- package/dist/assets/{Availability-Y2hfFgNf.js → Availability-PU0rLtaR.js} +1 -1
- package/dist/assets/Availability-PU0rLtaR.js.br +0 -0
- package/dist/assets/{Bind-Bc4tRdR2.js → Bind-ByraS7_e.js} +1 -1
- package/dist/assets/Bind-ByraS7_e.js.br +0 -0
- package/dist/assets/Bridge-DkgYFiG9.js +1 -0
- package/dist/assets/Bridge-DkgYFiG9.js.br +0 -0
- package/dist/assets/{CheckboxField-c8y6Hi-x.js → CheckboxField-DL452sgi.js} +1 -1
- package/dist/assets/CheckboxField-DL452sgi.js.br +0 -0
- package/dist/assets/{ClusterSinglePicker-2WbdnphV.js → ClusterSinglePicker-CdWuBd2I.js} +1 -1
- package/dist/assets/ClusterSinglePicker-CdWuBd2I.js.br +0 -0
- package/dist/assets/{Clusters-BUBvyVhe.js → Clusters-Dqpd0Nay.js} +1 -1
- package/dist/assets/Clusters-Dqpd0Nay.js.br +0 -0
- package/dist/assets/{Dashboard-DJeYXVH8.js → Dashboard-D72X1Jpp.js} +1 -1
- package/dist/assets/Dashboard-D72X1Jpp.js.br +0 -0
- package/dist/assets/{DashboardFeatureWrapper-BZFJ0bd5.js → DashboardFeatureWrapper-CijVXPwd.js} +1 -1
- package/dist/assets/DashboardFeatureWrapper-CijVXPwd.js.br +0 -0
- package/dist/assets/{DebouncedInput-DTeMxENR.js → DebouncedInput-Oo6AI4sw.js} +1 -1
- package/dist/assets/DebouncedInput-Oo6AI4sw.js.br +0 -0
- package/dist/assets/{DevConsole-wRVw8Cq_.js → DevConsole-DidHFg9P.js} +1 -1
- package/dist/assets/DevConsole-DidHFg9P.js.br +0 -0
- package/dist/assets/DevConsole-Ou7nxVMB.js +20 -0
- package/dist/assets/DevConsole-Ou7nxVMB.js.br +0 -0
- package/dist/assets/{DeviceCard-BrVsgP8G.js → DeviceCard-BQ3AAT7N.js} +1 -1
- package/dist/assets/DeviceCard-BQ3AAT7N.js.br +0 -0
- package/dist/assets/{DeviceControlEditName-B8o0IduC.js → DeviceControlEditName-CdOvAC3i.js} +1 -1
- package/dist/assets/DeviceControlEditName-CdOvAC3i.js.br +0 -0
- package/dist/assets/DeviceImage-C9XLyJZx.js +1 -0
- package/dist/assets/DeviceImage-C9XLyJZx.js.br +0 -0
- package/dist/assets/{DeviceInfo-kYR-Fqd1.js → DeviceInfo-ADguzSw7.js} +2 -2
- package/dist/assets/DeviceInfo-ADguzSw7.js.br +0 -0
- package/dist/assets/DevicePage-nrrWZFdG.js +2 -0
- package/dist/assets/DevicePage-nrrWZFdG.js.br +0 -0
- package/dist/assets/{DevicePicker-u_bCapsU.js → DevicePicker-toVVVDvU.js} +1 -1
- package/dist/assets/DevicePicker-toVVVDvU.js.br +0 -0
- package/dist/assets/{DeviceSettings-r4QQ16Y_.js → DeviceSettings-CTvrWIT_.js} +1 -1
- package/dist/assets/DeviceSettings-CTvrWIT_.js.br +0 -0
- package/dist/assets/DeviceSpecificSettings-C-JdxNN-.js +1 -0
- package/dist/assets/DeviceSpecificSettings-C-JdxNN-.js.br +0 -0
- package/dist/assets/Devices-CeivpLUl.js +1 -0
- package/dist/assets/Devices-CeivpLUl.js.br +0 -0
- package/dist/assets/{DevicesPage-BQiqyniU.js → DevicesPage-DlF_s1BX.js} +1 -1
- package/dist/assets/DevicesPage-DlF_s1BX.js.br +0 -0
- package/dist/assets/{DisplayValue-Bu9bCcMH.js → DisplayValue-BOG1_pD9.js} +1 -1
- package/dist/assets/DisplayValue-BOG1_pD9.js.br +0 -0
- package/dist/assets/{Donate-CRlQpgvc.js → Donate-DesLNYDr.js} +1 -1
- package/dist/assets/Donate-DesLNYDr.js.br +0 -0
- package/dist/assets/{EndpointPicker-Bah7UQwn.js → EndpointPicker-DeqXMnZV.js} +1 -1
- package/dist/assets/EndpointPicker-DeqXMnZV.js.br +3 -0
- package/dist/assets/{Exposes-D-oJ8AUZ.js → Exposes-C5U8q2yk.js} +1 -1
- package/dist/assets/Exposes-C5U8q2yk.js.br +0 -0
- package/dist/assets/Feature-Ciu4ZwFB.js +1 -0
- package/dist/assets/Feature-Ciu4ZwFB.js.br +0 -0
- package/dist/assets/Frontend-DTfIT-Dy.js +1 -0
- package/dist/assets/Frontend-DTfIT-Dy.js.br +0 -0
- package/dist/assets/{GroupPage-CinFVcrB.js → GroupPage-s_YhF_aM.js} +2 -2
- package/dist/assets/GroupPage-s_YhF_aM.js.br +0 -0
- package/dist/assets/GroupSettings-C1Mxz20w.js +1 -0
- package/dist/assets/GroupSettings-C1Mxz20w.js.br +0 -0
- package/dist/assets/{Groups-Bb0Ru3Zf.js → Groups-DejN32tj.js} +1 -1
- package/dist/assets/Groups-DejN32tj.js.br +0 -0
- package/dist/assets/{GroupsPage-D4PCV1bo.js → GroupsPage-BghQyG2m.js} +1 -1
- package/dist/assets/GroupsPage-BghQyG2m.js.br +0 -0
- package/dist/assets/{Health-OnUE9QWE.js → Health-Dky6SDKV.js} +1 -1
- package/dist/assets/Health-Dky6SDKV.js.br +0 -0
- package/dist/assets/{HomePage-Djij8p1L.js → HomePage-DcqiUqjS.js} +1 -1
- package/dist/assets/HomePage-DcqiUqjS.js.br +0 -0
- package/dist/assets/{InputField-jq2OxQIa.js → InputField-BHHQh6No.js} +1 -1
- package/dist/assets/InputField-BHHQh6No.js.br +0 -0
- package/dist/assets/{Json-DCzRwgfL.js → Json-4L3vY4kO.js} +1 -1
- package/dist/assets/Json-4L3vY4kO.js.br +0 -0
- package/dist/assets/{LastSeen-B1biXrw2.js → LastSeen-dsZqv4y_.js} +1 -1
- package/dist/assets/LastSeen-dsZqv4y_.js.br +0 -0
- package/dist/assets/LogsPage-Bm2mwOb6.js +1 -0
- package/dist/assets/LogsPage-Bm2mwOb6.js.br +0 -0
- package/dist/assets/{Lqi-CRLHxVMN.js → Lqi-D-5JxyY1.js} +1 -1
- package/dist/assets/Lqi-D-5JxyY1.js.br +0 -0
- package/dist/assets/NetworkPage-C6zhqoAF.js +2 -0
- package/dist/assets/NetworkPage-C6zhqoAF.js.br +0 -0
- package/dist/assets/{NumberField-CV22qokC.js → NumberField-W0nLjOub.js} +1 -1
- package/dist/assets/NumberField-W0nLjOub.js.br +0 -0
- package/dist/assets/{OtaPage-ClJoXAFj.js → OtaPage-Dh-CKhjl.js} +1 -1
- package/dist/assets/OtaPage-Dh-CKhjl.js.br +0 -0
- package/dist/assets/{PowerSource-B-NPFalK.js → PowerSource-zOxQYLf3.js} +1 -1
- package/dist/assets/PowerSource-zOxQYLf3.js.br +0 -0
- package/dist/assets/{RawNetworkData-CR2PHbul.js → RawNetworkData-RqJboJd5.js} +1 -1
- package/dist/assets/RawNetworkData-RqJboJd5.js.br +0 -0
- package/dist/assets/RawNetworkMap-TRBX0zwa.js +4257 -0
- package/dist/assets/RawNetworkMap-TRBX0zwa.js.br +0 -0
- package/dist/assets/{RecallRemove-CS_t6YvC.js → RecallRemove-cc5YDCh9.js} +1 -1
- package/dist/assets/RecallRemove-cc5YDCh9.js.br +0 -0
- package/dist/assets/{Reporting-DmZe9vnj.js → Reporting-DnG0I3Vc.js} +1 -1
- package/dist/assets/Reporting-DnG0I3Vc.js.br +0 -0
- package/dist/assets/Scene-BAtAVAEO.js +1 -0
- package/dist/assets/Scene-BAtAVAEO.js.br +0 -0
- package/dist/assets/{SelectField-Dz20jbSb.js → SelectField-BMt7uZuS.js} +1 -1
- package/dist/assets/SelectField-BMt7uZuS.js.br +0 -0
- package/dist/assets/{Settings-CwhHOfip.js → Settings-gGZGfvuj.js} +1 -1
- package/dist/assets/Settings-gGZGfvuj.js.br +0 -0
- package/dist/assets/{SettingsList-CyvgIGqz.js → SettingsList-D8N_9F77.js} +1 -1
- package/dist/assets/SettingsList-D8N_9F77.js.br +0 -0
- package/dist/assets/{SettingsPage-C0R-aayz.js → SettingsPage-BvLt8GhQ.js} +2 -2
- package/dist/assets/SettingsPage-BvLt8GhQ.js.br +0 -0
- package/dist/assets/State-BNAmyC2W.js +1 -0
- package/dist/assets/State-BNAmyC2W.js.br +0 -0
- package/dist/assets/{Table-Rnmw7IBM.js → Table-YMU-GTDx.js} +1 -1
- package/dist/assets/Table-YMU-GTDx.js.br +0 -0
- package/dist/assets/{TextareaField-2ongT4h2.js → TextareaField-RnWDqrAI.js} +1 -1
- package/dist/assets/TextareaField-RnWDqrAI.js.br +0 -0
- package/dist/assets/Tools-pHwI6wAE.js +1 -0
- package/dist/assets/Tools-pHwI6wAE.js.br +0 -0
- package/dist/assets/TouchlinkPage-C5u7Nbx_.js +1 -0
- package/dist/assets/TouchlinkPage-C5u7Nbx_.js.br +0 -0
- package/dist/assets/{VendorLink-jEsCmgvA.js → VendorLink-DuKl6tZD.js} +1 -1
- package/dist/assets/VendorLink-DuKl6tZD.js.br +0 -0
- package/dist/assets/{_createCompounder-lE4q6Zdw.js → _createCompounder-j5DHCRsI.js} +1 -1
- package/dist/assets/_createCompounder-j5DHCRsI.js.br +0 -0
- package/dist/assets/{format-C46-otnl.js → format-DWdgGQ5D.js} +1 -1
- package/dist/assets/format-DWdgGQ5D.js.br +3 -0
- package/dist/assets/index-BR27vzZL.js +637 -0
- package/dist/assets/index-BR27vzZL.js.br +0 -0
- package/dist/assets/{index-ecUrAuQ7.js → index-Dn4wgen8.js} +1 -1
- package/dist/assets/index-Dn4wgen8.js.br +0 -0
- package/dist/assets/{index-CJXgmHmo.css → index-LLsrh-Ne.css} +1 -1
- package/dist/assets/index-LLsrh-Ne.css.br +0 -0
- package/dist/assets/{jszip.min-CtGBfDMw.js → jszip.min-Dj0U1QNV.js} +1 -1
- package/dist/assets/jszip.min-Dj0U1QNV.js.br +0 -0
- package/dist/assets/snakeCase-Dntle38p.js +1 -0
- package/dist/assets/snakeCase-Dntle38p.js.br +0 -0
- package/dist/index.html +2 -2
- package/dist/index.html.br +0 -0
- package/package.json +13 -14
- package/dist/assets/About-4agra-GV.js.br +0 -0
- package/dist/assets/Availability-Y2hfFgNf.js.br +0 -0
- package/dist/assets/Bind-Bc4tRdR2.js.br +0 -0
- package/dist/assets/Bridge-LybRVH8O.js +0 -1
- package/dist/assets/Bridge-LybRVH8O.js.br +0 -0
- package/dist/assets/CheckboxField-c8y6Hi-x.js.br +0 -0
- package/dist/assets/ClusterSinglePicker-2WbdnphV.js.br +0 -0
- package/dist/assets/Clusters-BUBvyVhe.js.br +0 -0
- package/dist/assets/Dashboard-DJeYXVH8.js.br +0 -0
- package/dist/assets/DashboardFeatureWrapper-BZFJ0bd5.js.br +0 -0
- package/dist/assets/DebouncedInput-DTeMxENR.js.br +0 -0
- package/dist/assets/DevConsole-DJyJeofX.js +0 -20
- package/dist/assets/DevConsole-DJyJeofX.js.br +0 -0
- package/dist/assets/DevConsole-wRVw8Cq_.js.br +0 -0
- package/dist/assets/DeviceCard-BrVsgP8G.js.br +0 -0
- package/dist/assets/DeviceControlEditName-B8o0IduC.js.br +0 -0
- package/dist/assets/DeviceImage-DEOMWWIY.js +0 -1
- package/dist/assets/DeviceImage-DEOMWWIY.js.br +0 -0
- package/dist/assets/DeviceInfo-kYR-Fqd1.js.br +0 -0
- package/dist/assets/DevicePage-C7MMwXoy.js +0 -2
- package/dist/assets/DevicePage-C7MMwXoy.js.br +0 -0
- package/dist/assets/DevicePicker-u_bCapsU.js.br +0 -0
- package/dist/assets/DeviceSettings-r4QQ16Y_.js.br +0 -0
- package/dist/assets/DeviceSpecificSettings-DB58V_mT.js +0 -1
- package/dist/assets/DeviceSpecificSettings-DB58V_mT.js.br +0 -0
- package/dist/assets/Devices-DfNm8Rdn.js +0 -1
- package/dist/assets/Devices-DfNm8Rdn.js.br +0 -0
- package/dist/assets/DevicesPage-BQiqyniU.js.br +0 -0
- package/dist/assets/DisplayValue-Bu9bCcMH.js.br +0 -0
- package/dist/assets/Donate-CRlQpgvc.js.br +0 -0
- package/dist/assets/EndpointPicker-Bah7UQwn.js.br +0 -0
- package/dist/assets/Exposes-D-oJ8AUZ.js.br +0 -0
- package/dist/assets/Feature-w83aNOC8.js +0 -1
- package/dist/assets/Feature-w83aNOC8.js.br +0 -0
- package/dist/assets/Frontend-LFh1gxKL.js +0 -1
- package/dist/assets/Frontend-LFh1gxKL.js.br +0 -0
- package/dist/assets/GroupPage-CinFVcrB.js.br +0 -0
- package/dist/assets/GroupSettings-CNbZmiPj.js +0 -1
- package/dist/assets/GroupSettings-CNbZmiPj.js.br +0 -0
- package/dist/assets/Groups-Bb0Ru3Zf.js.br +0 -0
- package/dist/assets/GroupsPage-D4PCV1bo.js.br +0 -0
- package/dist/assets/Health-OnUE9QWE.js.br +0 -0
- package/dist/assets/HomePage-Djij8p1L.js.br +0 -0
- package/dist/assets/InputField-jq2OxQIa.js.br +0 -0
- package/dist/assets/Json-DCzRwgfL.js.br +0 -0
- package/dist/assets/LastSeen-B1biXrw2.js.br +0 -0
- package/dist/assets/LogsPage-DM61Tzgs.js +0 -1
- package/dist/assets/LogsPage-DM61Tzgs.js.br +0 -0
- package/dist/assets/Lqi-CRLHxVMN.js.br +0 -0
- package/dist/assets/NetworkPage-DaFugp_C.js +0 -2
- package/dist/assets/NetworkPage-DaFugp_C.js.br +0 -0
- package/dist/assets/NumberField-CV22qokC.js.br +0 -0
- package/dist/assets/OtaPage-ClJoXAFj.js.br +0 -0
- package/dist/assets/PowerSource-B-NPFalK.js.br +0 -0
- package/dist/assets/RawNetworkData-CR2PHbul.js.br +0 -0
- package/dist/assets/RawNetworkMap-CEs7XNMh.js +0 -4257
- package/dist/assets/RawNetworkMap-CEs7XNMh.js.br +0 -0
- package/dist/assets/RecallRemove-CS_t6YvC.js.br +0 -0
- package/dist/assets/Reporting-DmZe9vnj.js.br +0 -0
- package/dist/assets/Scene-CFAEgtv6.js +0 -1
- package/dist/assets/Scene-CFAEgtv6.js.br +0 -0
- package/dist/assets/SelectField-Dz20jbSb.js.br +0 -0
- package/dist/assets/Settings-CwhHOfip.js.br +0 -0
- package/dist/assets/SettingsList-CyvgIGqz.js.br +0 -0
- package/dist/assets/SettingsPage-C0R-aayz.js.br +0 -0
- package/dist/assets/State-DxJfpA-4.js +0 -1
- package/dist/assets/State-DxJfpA-4.js.br +0 -0
- package/dist/assets/Table-Rnmw7IBM.js.br +0 -0
- package/dist/assets/TextareaField-2ongT4h2.js.br +0 -0
- package/dist/assets/Tools-CYm6CKXl.js +0 -1
- package/dist/assets/Tools-CYm6CKXl.js.br +0 -0
- package/dist/assets/TouchlinkPage-Dk0ug2lT.js +0 -1
- package/dist/assets/TouchlinkPage-Dk0ug2lT.js.br +0 -0
- package/dist/assets/VendorLink-jEsCmgvA.js.br +0 -0
- package/dist/assets/_createCompounder-lE4q6Zdw.js.br +0 -0
- package/dist/assets/format-C46-otnl.js.br +0 -2
- package/dist/assets/index-CJXgmHmo.css.br +0 -0
- package/dist/assets/index-DojwNtOp.js +0 -645
- package/dist/assets/index-DojwNtOp.js.br +0 -0
- package/dist/assets/index-ecUrAuQ7.js.br +0 -2
- package/dist/assets/jszip.min-CtGBfDMw.js.br +0 -0
- package/dist/assets/snakeCase-BAKhf4f1.js +0 -1
- package/dist/assets/snakeCase-BAKhf4f1.js.br +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a9 as le,aR as rr,aS as tr,aT as ar,aU as nr,l as sr,aV as or,aW as cr,aX as ir,aY as lr,aZ as ur,aI as ue,a_ as fe,a$ as fr,b0 as mr,b1 as hr,b2 as pr,b3 as dr,b4 as xr,b5 as me,b6 as br,b7 as he,b8 as gr,b9 as yr,ba as z,bb as pe,bc as de,Y as _r,bd as Cr,be as vr,bf as jr,bg as Sr,bh as Tr,bi as kr,bj as Er,bk as Rr,bl as Nr,bm as Ar,bn as wr,bo as Fr,bp as qr,bq as Ir,br as $r,bs as Br,bt as Vr,bu as Mr,bv as Gr,bw as w,aK as Or,bx as xe,by as Ur,bz as Hr,bA as zr,bB as Lr,bC as Be,bD as Pr,bE as Ve,bF as Wr,bG as Dr,bH as Xr,bI as Yr,r as l,j as o,b as A,B as j,F as ie,bJ as Jr,ap as Kr,bK as Qr,bL as Zr,J as et}from"./index-BR27vzZL.js";import{D as U}from"./DisplayValue-BOG1_pD9.js";import{r as Me,a as Ge,b as rt}from"./_createCompounder-j5DHCRsI.js";var L,be;function tt(){if(be)return L;be=1;function e(a,t,r){var s=-1,n=a.length;t<0&&(t=-t>n?0:n+t),r=r>n?n:r,r<0&&(r+=n),n=t>r?0:r-t>>>0,t>>>=0;for(var u=Array(n);++s<n;)u[s]=a[s+t];return u}return L=e,L}var P,ge;function at(){if(ge)return P;ge=1;var e=tt();function a(t,r,s){var n=t.length;return s=s===void 0?n:s,!r&&s>=n?t:e(t,r,s)}return P=a,P}var W,ye;function Oe(){if(ye)return W;ye=1;var e="\\ud800-\\udfff",a="\\u0300-\\u036f",t="\\ufe20-\\ufe2f",r="\\u20d0-\\u20ff",s=a+t+r,n="\\ufe0e\\ufe0f",u="\\u200d",f=RegExp("["+u+e+s+n+"]");function c(i){return f.test(i)}return W=c,W}var D,_e;function nt(){if(_e)return D;_e=1;function e(a){return a.split("")}return D=e,D}var X,Ce;function st(){if(Ce)return X;Ce=1;var e="\\ud800-\\udfff",a="\\u0300-\\u036f",t="\\ufe20-\\ufe2f",r="\\u20d0-\\u20ff",s=a+t+r,n="\\ufe0e\\ufe0f",u="["+e+"]",f="["+s+"]",c="\\ud83c[\\udffb-\\udfff]",i="(?:"+f+"|"+c+")",p="[^"+e+"]",h="(?:\\ud83c[\\udde6-\\uddff]){2}",m="[\\ud800-\\udbff][\\udc00-\\udfff]",d="\\u200d",x=i+"?",v="["+n+"]?",T="(?:"+d+"(?:"+[p,h,m].join("|")+")"+v+x+")*",E=v+x+T,b="(?:"+[p+f+"?",f,h,m,u].join("|")+")",g=RegExp(c+"(?="+c+")|"+b+E,"g");function _(k){return k.match(g)||[]}return X=_,X}var Y,ve;function ot(){if(ve)return Y;ve=1;var e=nt(),a=Oe(),t=st();function r(s){return a(s)?t(s):e(s)}return Y=r,Y}var J,je;function ct(){if(je)return J;je=1;var e=at(),a=Oe(),t=ot(),r=Me();function s(n){return function(u){u=r(u);var f=a(u)?t(u):void 0,c=f?f[0]:u.charAt(0),i=f?e(f,1).join(""):u.slice(1);return c[n]()+i}}return J=s,J}var K,Se;function Ue(){if(Se)return K;Se=1;var e=ct(),a=e("toUpperCase");return K=a,K}var Q,Te;function it(){if(Te)return Q;Te=1;var e=Me(),a=Ue();function t(r){return a(e(r).toLowerCase())}return Q=t,Q}var Z,ke;function lt(){if(ke)return Z;ke=1;var e=it(),a=Ge(),t=a(function(r,s,n){return s=s.toLowerCase(),r+(n?e(s):s)});return Z=t,Z}var ut=lt();const ft=le(ut);var ee,Ee;function mt(){if(Ee)return ee;Ee=1;var e=Ge(),a=Ue(),t=e(function(r,s,n){return r+(n?" ":"")+a(s)});return ee=t,ee}var ht=mt();const pt=le(ht),dt={battery_low:w,humidity:Gr,illuminance:z,pressure:Mr,co2:Vr,voltage:Br,state:$r,brightness:z,occupancy:Ir,presence:qr,current:Fr,power:wr,energy:Ar,frequency:Nr,tamper:Rr,smoke:Er,radiation_dose_per_hour:kr,radioactive_events_per_minute:Tr,power_factor:Sr,mode:jr,sound:vr,position:Cr,alarm:_r,color_xy:de,color_hs:de,color_temp:pe,color_temp_startup:pe,illuminance_lux:z,soil_moisture:yr,water_leak:me,week:gr,workdays_schedule:he,holidays_schedule:he,away_mode:br,vibration:me,power_outage_count:xr,action:dr,angle_x:pr,angle_y:hr,angle_z:mr,side:fr,humidity_alarm:fe,temperature_alarm:fe,approach_distance:ue,distance:ue,trigger_count:ur,level_config:lr,station:ir,effect:cr,linkquality:or,system_mode:sr,gradient:nr,sensitivity:ar,test:tr,flow:rr},xt=(e,a)=>{let t=w;return e==null||(e>=85?(t=Be,a.push("text-success")):e>=65?t=Pr:e>=40?t=Ve:e>=20?t=Wr:(t=w,a.push("text-error"))),t},bt=(e,a)=>{let t=w;switch(e){case"high":{t=Be,a.push("text-success");break}case"medium":{t=Ve;break}case"low":{t=w,a.push("text-error");break}}return t},gt=(e,a,t)=>{let r=xe;return e==null||(a==="°F"&&(e=(e-32)/1.8),e>=30?(r=Ur,t.push("text-error")):e>=25?r=Hr:e>=20?r=zr:e>=15?r=Lr:e<5&&(r=xe,t.push("text-info"))),r},yt=(e,a,t)=>{let r;const s=[],n={};switch(e){case"battery":{r=xt(a,s);break}case"battery_state":{r=bt(a,s);break}case"battery_low":{a&&s.push("text-error");break}case"device_temperature":case"temperature":case"local_temperature":{r=gt(a,t,s);break}case"humidity":{a!=null&&a>60&&s.push("text-info");break}case"contact":{r=a?Xr:Yr,a||s.push("text-primary");break}case"occupancy":{a&&(s.push("text-warning"),n.beat=!0);break}case"presence":{a&&(s.push("text-warning"),n.beat=!0);break}case"tamper":{a&&(s.push("text-error"),n.beatFade=!0,n.shake=!0);break}case"water_leak":{a&&(s.push("text-primary"),n.beatFade=!0);break}case"vibration":{a&&(s.push("text-primary"),n.shake=!0);break}default:{e.includes("cyclic")&&(r=Dr);break}}return r?[r,s.join(" "),n]:(r=dt[e],r?[r,s.join(" "),n]:[Or,"opacity-0",{}])},He=e=>`${e.type}-${e.name}-${e.label}-${e.property}-${e.access}-${e.category}-${e.endpoint}`;var C=(e=>(e[e.STATE=1]="STATE",e[e.SET=2]="SET",e[e.GET=4]="GET",e[e.STATE_SET=3]="STATE_SET",e[e.STATE_GET=5]="STATE_GET",e[e.ALL=7]="ALL",e))(C||{});const F=l.memo(({feature:e,deviceValue:a})=>o.jsxs("div",{children:[e.property&&o.jsx("span",{className:"font-bold",children:o.jsx(U,{value:a,name:e.name})}),"unit"in e&&o.jsx("span",{className:"text-xs ms-1",children:e.unit})]})),q=l.memo(e=>o.jsxs("div",{className:"alert alert-warning",role:"alert",children:["Unknown access ",o.jsx("pre",{children:e.feature.access})]})),_t=l.memo(e=>{const{feature:{access:a=C.SET,name:t,property:r,value_off:s,value_on:n},deviceValue:u,onChange:f,minimal:c}=e,{t:i}=A("zigbee"),p=l.useCallback(m=>f(r?{[r]:m}:m),[r,f]),h=l.useCallback(m=>{const d=m.target.checked?n:s;f(r?{[r]:d}:d)},[n,s,r,f]);if(a&C.SET){const m=u!=null,d=!c||c&&!m;return o.jsxs("div",{children:[d&&o.jsx(j,{className:"btn btn-link",item:s,onClick:p,children:o.jsx(U,{value:s,name:t})}),m?o.jsx("input",{className:"toggle",type:"checkbox",checked:u===n,onChange:h}):o.jsx("span",{title:i("unknown"),children:o.jsx(ie,{icon:Jr})}),d&&o.jsx(j,{className:"btn btn-link",item:n,onClick:p,children:o.jsx(U,{value:n,name:t})})]})}return a&C.STATE?o.jsx(F,{...e}):o.jsx(q,{...e})}),R=l.memo(e=>{const{feature:a,onChange:t,parentFeatures:r,onRead:s,device:n,deviceState:u,featureWrapperClass:f,minimal:c,endpointSpecific:i,steps:p}=e,{type:h,property:m}=a,[d,x]=l.useState({}),{t:v}=A(["composite","common"]),T=l.useMemo(()=>Kr({},u,d),[u,d]),E="features"in a&&a.features||[],b=l.useMemo(()=>{if(h==="composite"&&r!==void 0){if(r.length===0)return!0;if(r.length===1){const y=r[0].type;return y!=null&&y!=="composite"&&y!=="list"}}return!1},[h,r]);l.useEffect(()=>{x({})},[n.ieee_address]);const g=l.useCallback(y=>{x({...d,...y}),b||t(h==="composite"&&m?{[m]:{...d,...y}}:y)},[d,h,m,b,t]),_=l.useCallback(()=>{const y={...u,...d};t(m?{[m]:y}:y)},[m,t,d,u]),k=l.useCallback(y=>{s?.(h==="composite"&&m?{[m]:y}:y)},[s,h,m]);return o.jsxs(o.Fragment,{children:[E.map(y=>o.jsx(er,{feature:y,parentFeatures:r??[],device:n,deviceState:T,onChange:g,onRead:k,featureWrapperClass:f,minimal:c,endpointSpecific:i,steps:p?.[y.name]},He(y))),b&&o.jsx("div",{className:"self-end float-right",children:o.jsx(j,{className:`btn btn-primary ${c?"btn-sm":""}`,onClick:_,children:v("common:apply")})})]})}),Ct=l.memo(e=>o.jsx(R,{...e}));var re,Re;function vt(){if(Re)return re;Re=1;function e(a,t,r){return a===a&&(r!==void 0&&(a=a<=r?a:r),t!==void 0&&(a=a>=t?a:t)),a}return re=e,re}var te,Ne;function jt(){if(Ne)return te;Ne=1;var e=/\s/;function a(t){for(var r=t.length;r--&&e.test(t.charAt(r)););return r}return te=a,te}var ae,Ae;function St(){if(Ae)return ae;Ae=1;var e=jt(),a=/^\s+/;function t(r){return r&&r.slice(0,e(r)+1).replace(a,"")}return ae=t,ae}var ne,we;function Tt(){if(we)return ne;we=1;var e=St(),a=Qr(),t=rt(),r=NaN,s=/^[-+]0x[0-9a-f]+$/i,n=/^0b[01]+$/i,u=/^0o[0-7]+$/i,f=parseInt;function c(i){if(typeof i=="number")return i;if(t(i))return r;if(a(i)){var p=typeof i.valueOf=="function"?i.valueOf():i;i=a(p)?p+"":p}if(typeof i!="string")return i===0?i:+i;i=e(i);var h=n.test(i);return h||u.test(i)?f(i.slice(2),h?2:8):s.test(i)?r:+i}return ne=c,ne}var se,Fe;function kt(){if(Fe)return se;Fe=1;var e=vt(),a=Tt();function t(r,s,n){return n===void 0&&(n=s,s=void 0),n!==void 0&&(n=a(n),n=n===n?n:0),s!==void 0&&(s=a(s),s=s===s?s:0),e(a(r),s,n)}return se=t,se}var Et=kt();const S=le(Et),Rt=[.412453,.35758,.180423,.212671,.71516,.072169,.019334,.119193,.950227],Nt=[3.2404813432005266,-1.5371515162713183,-.49853632616888777,-.9692549499965684,1.8759900014898907,.041555926558292815,.05564663913517715,-.20404133836651123,1.0573110696453443],ze=.42,Le=.0031308,Pe=12.92,H=.055,G=e=>e<=Le?Pe*e:(1+H)*e**ze-H,At=1/ze,wt=G(Le),Ft=1/Pe,oe=e=>e<=wt?e*Ft:((e+H)/(1+H))**At,We=(e,a)=>{const t=[0,0,0];for(let r=0;r<3;r++){t[r]=0;for(let s=0;s<3;s++)t[r]+=a[r*3+s]*e[s]}return t},qe=(e,a,t)=>{const r=[oe(e),oe(a),oe(t)];return We(r,Rt)},qt=(e,a,t)=>{const r=We([e,a,t],Nt);return[G(r[0]),G(r[1]),G(r[2])]},De=(e,a,t)=>{const r=1-e-a;return qt(t/a*e,t,t/a*r)},Xe=(e,a,t=10)=>{let r=1;for(let s=0;s<t;s++){const n=Math.max(...De(e,a,r));r=r/n}return r},I=(e,a,t)=>{if(e/=255,a/=255,t/=255,e<1e-12&&a<1e-12&&t<1e-12){const[f,c,i]=qe(1,1,1),p=f+c+i;return[f/p,c/p,0]}const[r,s,n]=qe(e,a,t),u=r+s+n;return[r/u,s/u,s]},It=(e,a,t)=>{t===void 0&&(t=Xe(e,a));const[r,s,n]=De(e,a,t);return[S(r*255,0,255),S(s*255,0,255),S(n*255,0,255)]},$=(e,a,t)=>{e/=255,a/=255,t/=255;const r=Math.max(e,a,t),s=r-Math.min(e,a,t),n=s?(r===e?(a-t)/s+(a<t?6:0):r===a?2+(t-e)/s:4+(e-a)/s)*60:0,u=r?s/r*100:0,f=r*100;return[S(n,0,360),S(u,0,100),S(f,0,100)]},$t=(e,a,t)=>{a/=100,t/=100;const r=~~(e/60),s=e/60-r,n=t*(1-a),u=t*(1-a*s),f=t*(1-a*(1-s)),c=r%6,i=[t,u,n,n,f,t][c]*255,p=[f,t,t,u,n,n][c]*255,h=[n,n,f,t,t,u][c]*255;return[S(i,0,255),S(p,0,255),S(h,0,255)]},B=(e,a,t)=>{const[r,s,n]=[e,a,t].map(u=>Math.round(u).toString(16).padStart(2,"0"));return`#${r}${s}${n}`},Bt=e=>(e=e.slice(1),Array.from({length:3}).map((a,t)=>Number.parseInt(e.slice(t*2,t*2+2),16))),N=(e,a)=>{switch(a){case"color_xy":{const{x:t=.313,y:r=.329,Y:s=Xe(t,r===0?.329:r)}=e,n=r===0?[255,255,255]:It(t,r,s);return{color_rgb:n,color_hs:$(...n),color_xy:[t,r,s],hex:B(...n)}}case"color_hs":{const{hue:t=0,saturation:r=0}=e,s=100,n=$t(t,r,s);return{color_rgb:n,color_hs:[t,r,s],color_xy:I(...n),hex:B(...n)}}case"color_rgb":{const{r:t=255,g:r=255,b:s=255}=e;return{color_rgb:[t,r,s],color_hs:$(t,r,s),color_xy:I(t,r,s),hex:B(t,r,s)}}case"hex":{const t=e.hex,r=Bt(t);return{color_rgb:r,color_hs:$(...r),color_xy:I(...r),hex:t}}default:{const t=[255,255,255];return{color_rgb:t,color_hs:$(...t),color_xy:I(...t),hex:B(...t)}}}},Ie=(e,a)=>{switch(a){case"color_xy":return{x:e.color_xy[0],y:e.color_xy[1]};case"color_hs":return{hue:e.color_hs[0],saturation:e.color_hs[1]};case"color_rgb":return{r:e.color_rgb[0],g:e.color_rgb[1],b:e.color_rgb[2]};case"hex":return{hex:e.hex}}},Ye=e=>`${e[0].toFixed(3)}, ${e[1].toFixed(3)}, ${e[2].toFixed(3)}`,O=e=>`${e[0].toFixed(2)}°, ${e[1].toFixed(2)}%, ${e[2].toFixed(2)}%`,Je=e=>`${e[0].toFixed(0)}, ${e[1].toFixed(0)}, ${e[2].toFixed(0)}`,Ke=e=>e,$e=e=>({color_xy:Ye(e.color_xy),color_hs:O(e.color_hs),color_rgb:Je(e.color_rgb),hex:Ke(e.hex)}),Vt=e=>{const a=e.match(/\d+(\.\d+)?/gu)??[];return Array.from({length:3}).map((t,r)=>+(a[r]??0))},Mt=e=>{const a=e.match(/\d+(\.\d+)?/gu)??[];return Array.from({length:3}).map((t,r)=>S(+(a[r]??0),0,r?100:360))},Gt=e=>{const a=e.match(/\d+(\.\d+)?/gu)??[];return Array.from({length:3}).map((t,r)=>S(+(a[r]??0),0,255))},ce=(e,a)=>{switch(a){case"color_xy":{const t=Vt(e);return N({x:t[0],y:t[1]},"color_xy")}case"color_hs":{const t=Mt(e);return N({hue:t[0],saturation:t[1]},"color_hs")}case"color_rgb":{const t=Gt(e);return N({r:t[0],g:t[1],b:t[2]},"color_rgb")}case"hex":return N({hex:e},"hex")}},Ot="linear-gradient(to right, white, transparent)",Ut="linear-gradient(to right, rgb(255, 0, 0), rgb(255, 255, 0), rgb(0, 255, 0), rgb(0, 255, 255), rgb(0, 0, 255), rgb(255, 0, 255), rgb(255, 0, 0))",V=l.memo(({label:e,...a})=>o.jsxs("label",{className:"input",children:[e,o.jsx("input",{type:"text",className:"grow",...a})]})),Qe=l.memo(e=>{const{onChange:a,value:t={},format:r,minimal:s}=e,[n,u]=l.useState(N(t,r)),[f,c]=l.useState($e(n)),[i,p]=l.useState({color_rgb:!1,color_hs:!1,color_xy:!1,hex:!1});l.useEffect(()=>{const b=N(t,r);u(b),c($e(b))},[t,r]),l.useEffect(()=>{if(!i.color_xy){const b=Ye(n.color_xy);c(g=>({...g,color_xy:b}))}},[i.color_xy,n.color_xy]),l.useEffect(()=>{if(!i.color_hs){const b=O(n.color_hs);c(g=>({...g,color_hs:b}))}},[i.color_hs,n.color_hs]),l.useEffect(()=>{if(!i.color_rgb){const b=Je(n.color_rgb);c(g=>({...g,color_rgb:b}))}},[i.color_rgb,n.color_rgb]),l.useEffect(()=>{if(!i.hex){const b=Ke(n.hex);c(g=>({...g,hex:b}))}},[i.hex,n.hex]);const h=l.useCallback(b=>{if(b.target.value){const g=Array.from(n.color_hs);g[1]=b.target.valueAsNumber;const _=O(g);c(k=>({...k,color_hs:_})),u(ce(_,"color_hs"))}},[n.color_hs]),m=l.useCallback(b=>{if(b.target.value){const g=Array.from(n.color_hs),_=g[1];g[1]=_===0?100:_,g[0]=b.target.valueAsNumber;const k=O(g);c(y=>({...y,color_hs:k})),u(ce(k,"color_hs"))}},[n.color_hs]),d=l.useCallback(b=>{const{value:g,name:_}=b.target;c(k=>({...k,[_]:g})),u(ce(g,_))},[]),x=l.useCallback(b=>{p(g=>({...g,[b.target.name]:!0}))},[]),v=l.useCallback(b=>{p(g=>({...g,[b.target.name]:!1})),a(Ie(n,r))},[n,r,a]),T=l.useCallback(()=>{a(Ie(n,r))},[n,r,a]),E=l.useMemo(()=>`hsl(${n.color_hs[0]}, 100%, 50%)`,[n.color_hs[0]]);return o.jsxs(o.Fragment,{children:[o.jsx("div",{className:"flex flex-row flex-wrap gap-3 items-center",children:o.jsx("div",{className:`w-full${s?" max-w-xs":""}`,children:o.jsx("input",{type:"range",min:0,max:100,value:n.color_hs[1],className:`range [--range-bg:transparent] [--range-fill:0] w-full${s?" range-xs ":""}`,style:{backgroundImage:Ot,backgroundColor:E},onChange:h,onTouchEnd:T,onMouseUp:T})})}),o.jsx("div",{className:"flex flex-row flex-wrap gap-3 items-center",children:o.jsx("div",{className:`w-full${s?" max-w-xs":""}`,children:o.jsx("input",{type:"range",min:0,max:360,value:n.color_hs[0],className:`range [--range-bg:transparent] [--range-fill:0] w-full${s?" range-xs ":""}`,style:{backgroundImage:Ut},onChange:m,onTouchEnd:T,onMouseUp:T})})}),!s&&o.jsxs("div",{className:"flex flex-row flex-wrap gap-2 justify-around",children:[o.jsx(V,{label:"hex",name:"hex",value:f.hex,onChange:d,onFocus:x,onBlur:v}),o.jsx(V,{label:"rgb",name:"color_rgb",value:f.color_rgb,onChange:d,onFocus:x,onBlur:v}),o.jsx(V,{label:"hsv",name:"color_hs",value:f.color_hs,onChange:d,onFocus:x,onBlur:v}),o.jsx(V,{label:"xyY",name:"color_xy",value:f.color_xy,onChange:d,onFocus:x,onBlur:v})]})]})}),Ht=l.memo(e=>{const{deviceValue:a,feature:{name:t,features:r,property:s},onChange:n,minimal:u}=e,f=l.useMemo(()=>{const i={},p=a!=null&&typeof a=="object"?a:{};for(const h of r){const m=Number.parseFloat(p[h.name]);i[h.name]=Number.isNaN(m)?0:m}return i},[a,r]),c=l.useCallback(i=>n({[s??"color"]:i}),[s,n]);return o.jsx(Qe,{onChange:c,value:f,format:t,minimal:u})}),zt={position:[0,25,50,75,100].map(e=>({value:e,name:`${e}`})),tilt:[0,25,50,75,100].map(e=>({value:e,name:`${e}`}))},Lt=l.memo(e=>o.jsx(R,{...e,steps:zt}));function M(e){return typeof e!="object"}const Ze=l.memo(e=>{const{onChange:a,values:t,value:r,minimal:s}=e,{t:n}=A("common"),u=M(r),f=l.useCallback(c=>{const i=t.find(p=>M(p)?p===c.target.value:p.value===Number.parseInt(c.target.value,10));a(i)},[t,a]);return s?o.jsxs("select",{className:"select",onChange:f,value:u?r:r?.value,children:[o.jsx("option",{value:"",disabled:!0,children:n("select_value")}),t.map(c=>{const i=M(c);return o.jsx("option",{value:i?c:c.value,children:i?c:c.name},i?c:c.name)})]}):o.jsx("div",{className:"join join-vertical lg:join-horizontal",children:t.map(c=>{const i=M(c),p=i?c===r:c.value===(u?r:r?.value);return o.jsx(j,{className:`btn btn-soft btn-sm join-item${p?" btn-active":""}`,onClick:h=>a(h),item:i?c:c.value,title:i?`${c}`:c.description,children:i?o.jsx(U,{value:c,name:""}):c.name},i?c:c.name)})})}),Pt=6,Wt=l.memo(e=>{const{onChange:a,feature:{access:t=C.SET,values:r,property:s},deviceValue:n,minimal:u}=e;return t&C.SET?o.jsx(Ze,{onChange:f=>a(s?{[s]:f}:f),values:r,value:n!=null&&(typeof n=="string"||typeof n=="number"||typeof n=="object")?n:"",minimal:u||r.length>Pt}):t&C.STATE?o.jsx(F,{...e}):o.jsx(q,{...e})}),Dt=l.memo(e=>o.jsx(R,{...e})),Xt=l.memo(e=>{const{minimal:a,onChange:t,feature:{length_min:r,length_max:s,property:n},deviceValue:u}=e,{t:f}=A(["gradient","common"]),[c,i]=l.useState(r>0?Array(r).fill("#ffffff"):[]);l.useEffect(()=>{u&&Array.isArray(u)&&u.length>0&&i(u)},[u]);const p=l.useCallback((b,g)=>{const _=Array.from(c);_[b]=g,i(_)},[c]),h=l.useCallback(()=>{const b=Array.from(c);b.push("#ffffff"),i(b)},[c]),m=l.useCallback(b=>{const g=Array.from(c);g.splice(b,1),i(g)},[c]),d=l.useCallback(()=>t({[n??"gradient"]:c}),[c,n,t]),[x,v]=l.useState(!1),[T,E]=l.useState(!1);return l.useEffect(()=>{v(c.length<s),E(c.length>r)},[c,r,s]),o.jsxs("div",{className:"flex flex-col gap-2",children:[c.map((b,g)=>o.jsxs("div",{className:"flex flex-row flex-wrap gap-2 items-center",children:[o.jsx(Qe,{onChange:_=>{p(g,_.hex)},value:{hex:b},format:"hex",minimal:a}),T&&o.jsx(j,{className:"btn btn-sm btn-error",onClick:()=>m(g),children:"-"})]},`${b}-${g}`)),x&&o.jsx("div",{className:"flex flex-row flex-wrap gap-2",children:o.jsx(j,{className:"btn btn-sm btn-success",onClick:h,children:"+"})}),o.jsx("div",{children:o.jsx(j,{className:`btn btn-primary ${a?"btn-sm":""}`,onClick:d,children:f("common:apply")})})]})}),Yt={brightness:[0,25,50,75,100].map(e=>({value:Zr(e,[0,100],[0,255]),name:`${e}%`})),color_temp:[1e3,2e3,3e3,4e3,5e3,6500].map(e=>({value:1e6/e,name:`${e}K`}))},Jt=l.memo(e=>o.jsx(R,{...e,steps:Yt}));function Kt(e){return e.type==="composite"&&(e.name==="color_xy"||e.name==="color_hs")}const Qt=l.memo(e=>{const{t:a}=A("zigbee"),{children:t,feature:r,deviceValue:s,onRead:n,endpointSpecific:u}=e,f=r.unit,c=l.useMemo(()=>yt(r.name,s,f),[f,r.name,s]),i=l.useMemo(()=>n!==void 0&&(!!(r.property&&r.access&C.GET)||Kt(r)),[r,n]),p=e.parentFeatures?.[e.parentFeatures.length-1],h=r.name==="state"?r.property:r.name;let m=r.label||pt(ft(h));p?.label&&r.name==="state"&&p.type!=="light"&&p.type!=="switch"&&(m=`${p.label} ${r.label.charAt(0).toLowerCase()}${r.label.slice(1)}`);const d=l.useCallback(x=>{x.property&&n?.({[x.property]:""})},[n]);return o.jsxs("div",{className:"list-row p-3",children:[o.jsx("div",{children:o.jsx(ie,{icon:c[0],fixedWidth:!0,className:c[1],...c[2],size:"2xl"})}),o.jsxs("div",{children:[o.jsxs("div",{title:h,children:[m,!u&&r.endpoint?` (${a("endpoint")}: ${r.endpoint})`:""]}),o.jsx("div",{className:"text-xs font-semibold opacity-60",children:r.description})]}),o.jsx("div",{className:"list-col-wrap flex flex-col gap-2",children:t}),i&&o.jsx(j,{item:r,onClick:d,className:"btn btn-xs btn-square btn-primary",children:o.jsx(ie,{icon:et})})]})}),Zt=l.memo(e=>{const{onChange:a,value:t,feature:r,parentFeatures:s}=e,[n,u]=l.useState(t);l.useEffect(()=>{u(t)},[t]);const f=l.useCallback(h=>{u(h),a(h)},[a]),c=l.useCallback((h,m)=>{const d=Array.from(n);typeof h=="object"&&h!=null&&(h={...n[m],...h}),d[m]=h??"",f(d)},[n,f]),i=l.useCallback(h=>{const m=Array.from(n);m.splice(h,1),f(m)},[n,f]),p=l.useCallback(()=>u([...n,r.type==="composite"?{}:""]),[n,r.type]);return n.length===0?o.jsx("div",{className:"flex flex-row flex-wrap gap-2",children:o.jsx(j,{className:"btn btn-success col-1",onClick:p,children:"+"})}):n.map((h,m)=>o.jsxs("div",{className:"flex flex-row flex-wrap gap-2",children:[o.jsx(er,{feature:r,device:{},deviceState:h,onChange:d=>c(d,m),featureWrapperClass:Qt,parentFeatures:s}),o.jsxs("div",{className:"join join-vertical lg:join-horizontal",children:[o.jsx(j,{item:m,className:"btn btn-sm btn-error btn-square join-item",onClick:i,children:"-"}),n.length-1===m&&o.jsx(j,{className:"btn btn-sm btn-success btn-square join-item",onClick:p,children:"+"})]})]},m))}),ea=l.memo(e=>{const{t:a}=A(["list","common"]),{feature:t,minimal:r,parentFeatures:s,onChange:n,deviceValue:u}=e,[f,c]=l.useState([]),i=l.useMemo(()=>{if(s!==void 0){if(s.length===0)return!0;if(s.length===1){const x=s[0].type;return x!=null&&x!=="composite"&&x!=="list"}}return!1},[s]);l.useEffect(()=>{u?Array.isArray(u)?c(u):t.property&&typeof u=="object"?c(u[t.property]??[]):c([]):c([])},[t.property,u]);const p=l.useCallback(x=>{c(x),i||n(t.property?{[t.property]:x}:x)},[t.property,n,i]),h=l.useCallback(()=>{n(t.property?{[t.property]:f}:f)},[t.property,n,f]),{access:m=C.SET,item_type:d}=t;return m&C.SET?o.jsxs(o.Fragment,{children:[o.jsx(Zt,{feature:d,parentFeatures:[...s,t],onChange:p,value:f}),i&&o.jsx("div",{children:o.jsx(j,{className:`btn btn-primary ${r?"btn-sm":""}`,onClick:h,disabled:f.length===0,children:a("common:apply")})})]}):m&C.STATE?o.jsx(F,{...e}):o.jsx(q,{...e})}),ra=l.memo(e=>o.jsx(R,{...e})),ta=l.memo(e=>{const{onChange:a,value:t,min:r,max:s,unit:n,steps:u,minimal:f,...c}=e,[i,p]=l.useState(t),h=r!=null&&s!=null;l.useEffect(()=>{p(t)},[t]);const m=l.useCallback(x=>{p(x.target.value?x.target.valueAsNumber:"")},[]),d=l.useCallback(x=>!x.target.validationMessage&&a(i===""?null:i),[i,a]);return o.jsxs("div",{className:"flex flex-row flex-wrap gap-3 items-center",children:[!f&&u?o.jsx(Ze,{values:u,onChange:a,value:i}):null,h?o.jsxs("div",{className:"w-full max-w-xs",children:[o.jsx("input",{min:r,max:s,type:"range",className:"range range-xs range-primary validator",value:i,onChange:m,onTouchEnd:d,onMouseUp:d,...c}),o.jsxs("div",{className:"flex justify-between px-1 mt-1 text-xs",children:[o.jsx("span",{children:r}),f&&o.jsx("span",{children:i}),o.jsx("span",{children:s})]})]}):null,(!f||!h)&&o.jsxs("label",{className:"input",children:[o.jsx("input",{type:"number",className:"grow validator",value:i,onChange:m,onBlur:d,min:r,max:s,...c}),n]})]})}),aa=l.memo(e=>{const{feature:{presets:a,access:t=C.SET,property:r,unit:s,value_max:n,value_min:u,value_step:f},deviceValue:c,steps:i,onChange:p,minimal:h}=e;return t&C.SET?o.jsx(ta,{onChange:m=>p(r?{[r]:m}:m),value:typeof c=="number"?c:"",min:u,max:n,step:f,steps:a?.length?a:i,unit:s,minimal:h}):t&C.STATE?o.jsx(F,{...e}):o.jsx(q,{...e})}),na=l.memo(e=>o.jsx(R,{...e})),sa=l.memo(e=>{const{onChange:a,value:t,...r}=e,[s,n]=l.useState(t);return l.useEffect(()=>{n(t)},[t]),o.jsx("input",{type:"text",className:"input validator",value:s,onChange:u=>n(u.target.value),onBlur:u=>!u.target.validationMessage&&a(s),...r})}),oa=l.memo(e=>{const{feature:{access:a=C.SET,property:t},deviceValue:r,onChange:s}=e;return a&C.SET?o.jsx(sa,{onChange:n=>s(t?{[t]:n}:n),value:r!=null?typeof r=="string"?r:JSON.stringify(r):""}):a&C.STATE?o.jsx(F,{...e}):o.jsx(q,{...e})}),er=l.memo(e=>{const{feature:a,device:t,deviceState:r,steps:s,onRead:n,onChange:u,featureWrapperClass:f,minimal:c,endpointSpecific:i,parentFeatures:p}=e,h=l.useMemo(()=>a.property?r[a.property]:r,[a.property,r[a.property]]),m=l.useMemo(()=>He(a),[a]),d=l.useMemo(()=>({device:t,deviceValue:h,onChange:u,onRead:n,featureWrapperClass:f,minimal:c,endpointSpecific:i,parentFeatures:p}),[t,h,u,n,f,c,i,p]),x=l.useMemo(()=>({feature:a,onRead:n,deviceValue:h,parentFeatures:p,endpointSpecific:i}),[a,n,h,p,i]);switch(a.type){case"binary":return o.jsx(f,{...x,children:o.jsx(_t,{feature:a,...d},m)},m);case"numeric":return o.jsx(f,{...x,children:o.jsx(aa,{feature:a,...d,steps:s},m)},m);case"list":return a.name==="gradient"&&a.length_min!=null&&a.length_max!=null?o.jsx(f,{...x,children:o.jsx(Xt,{feature:a,...d},m)},m):o.jsx(f,{...x,children:o.jsx(ea,{feature:a,...d},m)},m);case"text":return o.jsx(f,{...x,children:o.jsx(oa,{feature:a,...d},m)},m);case"enum":return o.jsx(f,{...x,children:o.jsx(Wt,{feature:a,...d},m)},m);case"light":return o.jsx(Jt,{feature:a,...d,deviceState:r},m);case"switch":return o.jsx(na,{feature:a,...d,deviceState:r},m);case"cover":return o.jsx(Lt,{feature:a,...d,deviceState:r},m);case"lock":return o.jsx(ra,{feature:a,...d,deviceState:r},m);case"climate":return o.jsx(Ct,{feature:a,...d,deviceState:r},m);case"fan":return o.jsx(Dt,{feature:a,...d,deviceState:r},m);case"composite":{if(a.name==="color_xy"||a.name==="color_hs")return o.jsx(f,{...x,children:o.jsx(Ht,{feature:a,...d},m)},m);const v=p&&a.property?r[a.property]:r;return o.jsx(f,{...x,children:o.jsx(R,{feature:a,...d,deviceState:v},m)},m)}default:return console.error("Unsupported feature",a),o.jsx(f,{...x,children:o.jsx("pre",{children:JSON.stringify(a,null,4)})},m)}});export{er as F,Qt as a,C as b,yt as c,ft as d,He as g,pt as s};
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{b as q,r as o,s as e,H as g,w as v,c6 as f,c7 as E,G as w,aL as N,aM as b,aN as k,aO as j,aP as T,c8 as G,c9 as U,D as V,v as J,c0 as X,c1 as z,ca as Q,cb as Z,j as t,Q as S}from"./index-BR27vzZL.js";import{C}from"./CheckboxField-DL452sgi.js";import{I as M}from"./InputField-BHHQh6No.js";import{N as y}from"./NumberField-W0nLjOub.js";import{S as r}from"./SelectField-BMt7uZuS.js";import"./envs-CRUy-_iG.js";function ne(){const{t:s}=q(["settings","navbar","network","common"]),[l,A]=o.useState(e.get(g,"devices")),[i,D]=o.useState(e.get(v,!1)),[c,O]=o.useState(e.get(f,254)),[d,L]=o.useState(e.get(E,4)),[m,K]=o.useState(e.get(w,"data")),[u,I]=o.useState(e.get(N,"forceDirected2d")),[_,Y]=o.useState(e.get(b,"all")),[p,R]=o.useState(e.get(k,-750)),[h,P]=o.useState(e.get(j,50)),[x,F]=o.useState(e.get(T,!1));o.useEffect(()=>{e.set(g,l)},[l]),o.useEffect(()=>{e.set(v,i)},[i]),o.useEffect(()=>{e.set(f,c)},[c]),o.useEffect(()=>{e.set(E,d)},[d]),o.useEffect(()=>{e.set(w,m)},[m]),o.useEffect(()=>{e.set(N,u)},[u]),o.useEffect(()=>{e.set(b,_)},[_]),o.useEffect(()=>{e.set(k,p)},[p]),o.useEffect(()=>{e.set(j,h)},[h]),o.useEffect(()=>{e.set(T,x)},[x]);const H=o.useCallback(()=>{const a=e.keys();e.remove(G),e.remove(g),e.remove(v),e.remove(f),e.remove(E),e.remove(w),e.remove(N),e.remove(b),e.remove(k),e.remove(j),e.remove(T),e.remove(U),e.remove(V),e.remove(J);for(const n of a)(n.startsWith(X)||n.startsWith(z))&&e.remove(n);window.location.reload()},[]),W=o.useCallback(()=>{e.remove(Q),e.remove(Z),window.location.reload()},[]),B=o.useCallback(()=>{e.clearAll(),window.location.reload()},[]);return t.jsxs(t.Fragment,{children:[t.jsxs("div",{className:"alert alert-info alert-vertical sm:alert-horizontal",children:[s("frontend_notice"),t.jsxs("div",{className:"flex flex-row flex-wrap gap-2",children:[t.jsx(S,{className:"btn btn-sm btn-error",onClick:H,title:s("reset_settings"),modalDescription:s("common:dialog_confirmation_prompt"),modalCancelLabel:s("common:cancel"),children:s("reset_settings")}),t.jsx(S,{className:"btn btn-sm btn-error",onClick:W,title:s("reset_auth"),modalDescription:s("common:dialog_confirmation_prompt"),modalCancelLabel:s("common:cancel"),children:s("reset_auth")}),t.jsx(S,{className:"btn btn-sm btn-error",onClick:B,title:s("reset_all"),modalDescription:s("common:dialog_confirmation_prompt"),modalCancelLabel:s("common:cancel"),children:s("reset_all")})]})]}),t.jsxs("div",{className:"flex flex-row flex-wrap gap-4 mt-3",children:[t.jsxs(r,{name:"homepage",label:s("homepage"),onChange:a=>!a.target.validationMessage&&A(a.target.value),value:l,required:!0,children:[t.jsx("option",{value:"devices",children:s("navbar:devices")}),t.jsx("option",{value:"dashboard",children:s("navbar:dashboard")})]}),t.jsx(C,{name:"dashboard_column_display",label:s("dashboard_column_display"),checked:i,onChange:a=>D(a.target.checked)}),t.jsx(M,{type:"number",name:"permit_join_time",label:s("permit_join_time"),min:10,max:254,required:!0,value:c,onChange:a=>!a.target.validationMessage&&!!a.target.value&&O(a.target.valueAsNumber)}),t.jsx(M,{type:"number",name:"max_on_screen_notifications",label:s("max_on_screen_notifications"),min:1,max:5,required:!0,value:d,onChange:a=>!a.target.validationMessage&&!!a.target.value&&L(a.target.valueAsNumber)})]}),t.jsx("h2",{className:"text-lg mt-2",children:s("network_raw")}),t.jsx("div",{className:"flex flex-row flex-wrap gap-4",children:t.jsxs(r,{name:"network:display_type",label:s("network:display_type"),onChange:a=>!a.target.validationMessage&&K(a.target.value),value:m,required:!0,children:[t.jsx("option",{value:"data",children:s("network:data")}),t.jsx("option",{value:"map",children:s("network:map")})]})}),t.jsx("h2",{className:"text-lg mt-2",children:s("network_map")}),t.jsxs("div",{className:"flex flex-row flex-wrap gap-4",children:[t.jsxs(r,{name:"network:layout_type",label:s("network:layout_type"),onChange:a=>!a.target.validationMessage&&I(a.target.value),value:u,required:!0,children:[t.jsx("option",{value:"forceDirected2d",children:"forceDirected2d"}),t.jsx("option",{value:"forceDirected3d",children:"forceDirected3d"}),t.jsx("option",{value:"radialOut2d",children:"radialOut2d"}),t.jsx("option",{value:"radialOut3d",children:"radialOut3d"}),t.jsx("option",{value:"concentric2d",children:"concentric2d"})]}),t.jsxs(r,{name:"network:label_type",label:s("network:label_type"),onChange:a=>!a.target.validationMessage&&Y(a.target.value),value:_,required:!0,children:[t.jsx("option",{value:"all",children:"all"}),t.jsx("option",{value:"auto",children:"auto"}),t.jsx("option",{value:"none",children:"none"}),t.jsx("option",{value:"nodes",children:"nodes"}),t.jsx("option",{value:"edges",children:"edges"})]}),t.jsx("div",{className:"min-w-xs",children:t.jsx(y,{name:"network:node_strength",label:s("network:node_strength"),onSubmit:(a,n)=>n&&a!==""&&R(a),min:-1e3,max:-100,step:10,defaultValue:p})}),t.jsx("div",{className:"min-w-xs",children:t.jsx(y,{name:"network:link_distance",label:s("network:link_distance"),onSubmit:(a,n)=>n&&a!==""&&P(a),min:10,max:200,step:5,defaultValue:h})}),t.jsx(C,{name:"network:show_icons",label:s("network:show_icons"),onChange:a=>F(a.target.checked),defaultChecked:x})]})]})}export{ne as default};
|
|
Binary file
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./Devices-
|
|
2
|
-
import{r,b as p,j as e,L as f,P as j,F as m,f as v,u as h,d as _,a as b,N as u,o as N,k as w,_ as g}from"./index-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./Devices-CeivpLUl.js","./index-BR27vzZL.js","./envs-CRUy-_iG.js","./index-LLsrh-Ne.css","./RecallRemove-cc5YDCh9.js","./DashboardFeatureWrapper-CijVXPwd.js","./Feature-Ciu4ZwFB.js","./DisplayValue-BOG1_pD9.js","./_createCompounder-j5DHCRsI.js","./InputField-BHHQh6No.js","./SelectField-BMt7uZuS.js","./DevicePicker-toVVVDvU.js","./EndpointPicker-DeqXMnZV.js","./DeviceCard-BQ3AAT7N.js","./LastSeen-dsZqv4y_.js","./format-DWdgGQ5D.js","./Lqi-D-5JxyY1.js","./PowerSource-zOxQYLf3.js","./snakeCase-Dntle38p.js","./DeviceImage-C9XLyJZx.js","./index-Dn4wgen8.js","./GroupSettings-C1Mxz20w.js","./SettingsList-D8N_9F77.js","./CheckboxField-DL452sgi.js","./NumberField-W0nLjOub.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{r,b as p,j as e,L as f,P as j,F as m,f as v,u as h,d as _,a as b,N as u,o as N,k as w,_ as g}from"./index-BR27vzZL.js";import"./envs-CRUy-_iG.js";const y=r.memo(({groups:i,currentGroup:t,tab:n="devices"})=>{const[o,c]=r.useState(""),{t:l}=p("common"),a=r.useMemo(()=>i.filter(s=>s.friendly_name.toLowerCase().includes(o.toLowerCase())&&s.id!==t?.id).map(s=>e.jsx("li",{children:e.jsx(f,{to:`/group/${s.id}/${n}`,onClick:()=>c(""),className:"dropdown-item",children:s.friendly_name})},s.id)),[i,o,t,n]);return e.jsxs(j,{name:"header-group-selector",buttonChildren:`${t?`#${t.id} - ${t.friendly_name}`:l("unknown_group")}`,dropdownStyle:"dropdown-start",children:[e.jsxs("label",{className:"input",children:[e.jsx(m,{icon:v}),e.jsx("input",{type:"search",placeholder:l("type_to_filter"),onChange:s=>c(s.target.value),value:o})]},"search"),a]})}),T=r.lazy(async()=>await g(()=>import("./Devices-CeivpLUl.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]),import.meta.url)),$=r.lazy(async()=>await g(()=>import("./GroupSettings-C1Mxz20w.js"),__vite__mapDeps([21,1,2,3,22,23,9,24,10]),import.meta.url));function L(){const i=h(),{t}=p(["groups","common"]),{groupId:n,tab:o}=_(),c=b(d=>d.groups),l=Number.parseInt(n,10),a=n?c.find(d=>d.id===l):void 0;r.useEffect(()=>{!o&&a&&i(`/group/${a.id}/devices`,{replace:!0})},[o,a,i]);const s=({isActive:d})=>d?"tab tab-active":"tab",x=r.useMemo(()=>{if(!a)return e.jsx("div",{className:"flex-auto justify-center items-center",children:t("common:unknown_group")});switch(o){case"devices":return e.jsx(T,{group:a});case"settings":return e.jsx($,{group:a})}},[o,a,t]);return e.jsxs(e.Fragment,{children:[e.jsx(y,{groups:c,currentGroup:a,tab:o}),e.jsxs("div",{className:"tabs tabs-border mt-2",children:[e.jsxs(u,{to:`/group/${n}/devices`,className:s,children:[e.jsx(m,{icon:N,className:"me-2"}),t("common:devices")]}),e.jsxs(u,{to:`/group/${n}/settings`,className:s,children:[e.jsx(m,{icon:w,className:"me-2"}),t("settings")]})]}),e.jsx("div",{className:"tab-content block h-full bg-base-100 p-3",children:x})]})}export{L as default};
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{b as c,a as m,r as i,W as l,j as e,F as p,I as d,bO as f}from"./index-BR27vzZL.js";import{S as g}from"./SettingsList-D8N_9F77.js";import"./envs-CRUy-_iG.js";import"./CheckboxField-DL452sgi.js";import"./InputField-BHHQh6No.js";import"./NumberField-W0nLjOub.js";import"./SelectField-BMt7uZuS.js";function I({group:s}){const{t:n}=c(["settings","common"]),o=m(t=>t.bridgeInfo),{sendMessage:r}=i.useContext(l),a=i.useCallback(async t=>{await r("bridge/request/group/options",{id:s.id.toString(),options:t})},[r,s.id]);return e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"alert alert-info alert-soft mb-3",role:"alert",children:[e.jsx(p,{icon:d,size:"2xl"}),e.jsx("a",{href:f,target:"_blank",rel:"noreferrer",className:"link link-hover",children:n("common:read_the_docs_info")})]}),e.jsx(g,{schema:o.config_schema.definitions.group??{properties:{}},data:o.config.groups[s.id]??{},set:a})]})}export{I as default};
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as t,b as _,j as e,a as w,W as C,
|
|
1
|
+
import{r as t,b as _,j as e,a as w,W as C,ab as N,B as k,L as y,Q as G,F as S,z as M}from"./index-BR27vzZL.js";import{E}from"./EndpointPicker-DeqXMnZV.js";import{S as I}from"./SelectField-BMt7uZuS.js";import"./envs-CRUy-_iG.js";const q=t.memo(o=>{const{t:r}=_("common"),{groups:a,value:c,label:l,onChange:m,...i}=o,g=t.useCallback(u=>{const{value:d}=u.target,b=Number.parseInt(d,10);m(a.find(x=>b===x.id))},[a,m]),p=t.useMemo(()=>{const u=[];for(const d of a)u.push(e.jsx("option",{value:d.id,children:d.friendly_name},d.id));return u},[a]);return e.jsxs(I,{name:"group_picker",label:l,value:c,onChange:g,...i,children:[e.jsx("option",{value:"",disabled:!0,children:r("select_group")}),p]})});function B({device:o}){const{t:r}=_(["groups","zigbee","common"]),a=w(s=>s.groups),{sendMessage:c}=t.useContext(C),[l,m]=t.useState(""),[i,g]=t.useState(""),p=t.useMemo(()=>N(o),[o]),[u,d]=t.useMemo(()=>{const s=[],n=[];for(const f of a){const j=f.members.filter(h=>h.ieee_address===o.ieee_address);if(j.length>0)for(const h of j)s.push([f,h.endpoint]);else n.push(f)}return[s,n]},[a,o.ieee_address]),b=t.useCallback(s=>{g(s.id),m(p.values().next().value)},[p]),x=t.useCallback(async()=>await c("bridge/request/group/members/add",{group:i.toString(),endpoint:l,device:o.ieee_address}),[c,i,o.ieee_address,l]),v=t.useCallback(async([s,n])=>await c("bridge/request/group/members/remove",{device:o.ieee_address,endpoint:n,group:s.id.toString()}),[c,o.ieee_address]);return e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"flex flex-row flex-wrap justify-around items-start gap-3 my-2",children:e.jsxs("div",{children:[e.jsx("h2",{className:"text-lg font-semibold",children:r("add_to_group")}),e.jsxs("div",{className:"mb-3",children:[e.jsx(q,{label:r("zigbee:group"),value:i,groups:d,onChange:b,required:!0}),e.jsx(E,{label:r("zigbee:endpoint"),values:p,value:l,onChange:s=>m(s),required:!0})]}),e.jsx(k,{onClick:x,className:"btn btn-primary",disabled:l==null||i==null||l===""||i==="",children:r("add_to_group")})]})}),e.jsx("div",{className:"flex flex-row flex-wrap justify-center gap-3 mt-3",children:u.map(([s,n])=>e.jsxs("ul",{className:"w-[23rem] list bg-base-200 rounded-box shadow-md",children:[e.jsxs("li",{className:"list-row grow",children:[e.jsxs("div",{children:[e.jsxs(y,{to:`/group/${s.id}/devices`,className:"link link-hover",children:["#",s.id," - ",s.friendly_name,n?` (${r("endpoint")}: ${n})`:""]}),o.description&&e.jsx("div",{className:"text-xs opacity-50 truncate",title:o.description,children:o.description})]}),e.jsxs("div",{className:"list-col-wrap text-sm w-full gap-2",children:[e.jsxs("div",{className:"badge badge-soft badge-ghost cursor-default me-2",children:[r("group_members"),": ",s.members.length]}),e.jsxs("div",{className:"badge badge-soft badge-ghost cursor-default me-2",children:[r("group_scenes"),": ",s.scenes.length]})]})]}),e.jsx("li",{className:"flex flex-row flex-wrap gap-1 m-4 justify-around items-center",children:e.jsx(G,{item:[s,n],onClick:v,className:"btn btn-square btn-error btn-sm",title:r("remove_from_group"),modalDescription:r("common:dialog_confirmation_prompt"),modalCancelLabel:r("common:cancel"),children:e.jsx(S,{icon:M})})})]},`${s.id}-${n}`))})]})}export{B as default};
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{y as b,
|
|
1
|
+
import{y as b,K as _,b as h,r,j as a,M as N,B as m,a as w,W as C,L as f,F as g,O as k,Q as F,z as S}from"./index-BR27vzZL.js";import{I as u}from"./InputField-BHHQh6No.js";import{T as G}from"./Table-YMU-GTDx.js";import"./envs-CRUy-_iG.js";import"./DebouncedInput-Oo6AI4sw.js";const q=b.create(t=>{const{name:i,onRename:l}=t,c=_(),{t:o}=h(["groups","common"]),[s,n]=r.useState(i);return r.useEffect(()=>{n(i)},[i]),a.jsx(N,{isOpen:c.visible,title:`${o("rename_group")} ${i}`,footer:a.jsxs(a.Fragment,{children:[a.jsx(m,{className:"btn btn-neutral",onClick:c.remove,children:o("common:cancel")}),a.jsx(m,{className:"btn btn-primary ms-1",onClick:async()=>{s&&(c.remove(),await l(i,s))},children:o("rename_group")})]}),children:a.jsx("div",{className:"flex flex-col gap-2",children:a.jsx(u,{name:"friendly_name",label:o("common:friendly_name"),onChange:d=>n(d.target.value),value:s,type:"text",required:!0})})})});function $(){const[t,i]=r.useState(""),[l,c]=r.useState(""),o=w(e=>e.groups),{sendMessage:s}=r.useContext(C),{t:n}=h(["groups","common"]),d=r.useCallback(async()=>{const e={friendly_name:t};l&&(e.id=l),await s("bridge/request/group/add",e)},[t,l,s]),p=r.useCallback(async(e,v)=>await s("bridge/request/group/rename",{from:e,to:v}),[s]),x=r.useCallback(async e=>await s("bridge/request/group/remove",{id:e}),[s]),j=r.useMemo(()=>t?!l||!o.find(e=>e.id.toString()===l):!1,[t,l,o]),y=r.useMemo(()=>[{id:"group_id",header:n("group_id"),accessorFn:e=>e.id,cell:({row:{original:e}})=>a.jsxs("div",{className:"flex items-center gap-3",children:[a.jsx("div",{className:"avatar"}),a.jsxs("div",{className:"flex-grow flex flex-col",children:[a.jsx(f,{to:`/group/${e.id}/devices`,className:"link link-hover",children:e.id}),e.description&&a.jsx("div",{className:"max-w-xs text-xs opacity-50 truncate",title:e.description,children:e.description}),a.jsx("div",{className:"flex flex-row gap-1 mt-0.5",children:a.jsxs("span",{className:"badge badge-soft badge-sm badge-ghost cursor-default",children:[n("scenes"),": ",e.scenes?.length??0]})})]})]}),filterFn:"includesString"},{id:"friendly_name",header:n("common:friendly_name"),accessorFn:e=>e.friendly_name,cell:({row:{original:e}})=>a.jsx(f,{to:`/group/${e.id}/devices`,className:"link link-hover",children:e.friendly_name}),filterFn:"includesString"},{id:"members",header:n("group_members"),accessorFn:e=>e.members.length??0,enableColumnFilter:!1},{id:"actions",header:"",cell:({row:{original:e}})=>a.jsxs("div",{className:"join join-horizontal",children:[a.jsx(m,{className:"btn btn-square btn-outline btn-primary join-item",onClick:async()=>await b.show(q,{name:e.friendly_name,onRename:p}),title:n("rename_group"),disabled:e.friendly_name==="default_bind_group",children:a.jsx(g,{icon:k})}),a.jsx(F,{title:n("remove_group"),item:e.id.toString(),onClick:x,className:"btn btn-square btn-outline btn-error join-item",modalDescription:n("common:dialog_confirmation_prompt"),modalCancelLabel:n("common:cancel"),children:a.jsx(g,{icon:S})})]}),enableSorting:!1,enableColumnFilter:!1}],[p,x,n]);return a.jsxs(a.Fragment,{children:[a.jsxs("div",{className:"collapse collapse-arrow bg-base-100 shadow mb-3",children:[a.jsx("input",{type:"checkbox"}),a.jsx("div",{className:"collapse-title text-lg font-semibold text-center",children:n("create_group")}),a.jsx("div",{className:"collapse-content",children:a.jsxs("div",{className:"flex flex-row flex-wrap justify-center gap-2",children:[a.jsx(u,{type:"text",name:"friendly_name",label:n("common:friendly_name"),value:t,placeholder:n("friendly_name_placeholder"),onChange:e=>i(e.target.value),required:!0}),a.jsx(u,{type:"number",name:"group_id",label:n("group_id"),value:l,detail:n("common:optional"),min:0,max:255,onChange:e=>c(e.target.value)}),a.jsx(m,{onClick:d,className:"btn btn-primary self-center",disabled:!j,children:n("create_group")})]})})]}),a.jsx(G,{id:"all-groups",columns:y,data:o})]})}export{$ as default};
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{b as p,a as d,r as m,j as e,L as N,F as l,
|
|
1
|
+
import{b as p,a as d,r as m,j as e,L as N,F as l,I as o,a2 as x,b_ as u,b$ as g}from"./index-BR27vzZL.js";import{D as f}from"./DeviceImage-C9XLyJZx.js";import{T as b}from"./Table-YMU-GTDx.js";import{f as w}from"./format-DWdgGQ5D.js";import"./envs-CRUy-_iG.js";import"./index-Dn4wgen8.js";import"./DebouncedInput-Oo6AI4sw.js";function A(){const{t:a,i18n:h}=p(["health","settings","common"]),t=d(s=>s.bridgeHealth),i=d(s=>s.devices),v=m.useMemo(()=>{const s=[];if(t)for(const r in t.devices){const n=i.find(j=>j.ieee_address===r);n&&s.push({device:n,health:t.devices[r]})}return s},[t,i]),_=m.useMemo(()=>[{id:"friendly_name",header:a("common:friendly_name"),accessorFn:({device:s})=>[s.friendly_name,s.description,s.ieee_address].join(" "),cell:({row:{original:{device:s}}})=>e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"avatar",children:e.jsx("div",{className:"h-11 w-11",style:{overflow:"visible"},children:e.jsx(f,{device:s,disabled:!1})})}),e.jsx("div",{className:"flex flex-col",children:e.jsxs(N,{to:`/device/${s.ieee_address}/info`,className:"link link-hover",children:[s.friendly_name,s.friendly_name!==s.ieee_address?` (${s.ieee_address})`:""]})})]})},{id:"messages",header:a("messages"),accessorFn:({health:s})=>s.messages,enableColumnFilter:!1},{id:"messages_per_sec",header:a("messages_per_sec"),accessorFn:({health:s})=>s.messages_per_sec,enableColumnFilter:!1,cell:({row:{original:{health:s}}})=>e.jsx("span",{className:s.messages_per_sec>1?s.messages_per_sec>3?"text-error":"text-warning":s.messages_per_sec<.2?"text-success":"",children:s.messages_per_sec<=.001?a("very_low"):s.messages_per_sec})},{id:"leave_count",header:a("leave_count"),accessorFn:({health:s})=>s.leave_count,enableColumnFilter:!1},{id:"network_address_changes",header:a("network_address_changes"),accessorFn:({health:s})=>s.network_address_changes,enableColumnFilter:!1}],[a]);if(t.response_time===0)return e.jsxs("div",{className:"alert alert-info alert-soft",role:"alert",children:[e.jsx(l,{icon:o,size:"2xl"}),a("awaiting_next_check")]});const c=new Date(Date.now()-t.process.uptime_sec*1e3);return e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"alert alert-info alert-soft mb-3",role:"alert",children:[e.jsx(l,{icon:o,size:"2xl"}),a("interview_info")]}),e.jsxs("div",{className:"flex flex-col gap-3 items-center mb-2",children:[e.jsxs("p",{className:"text-sm",children:[a("last_check"),": ",x(new Date(t.response_time))]}),e.jsxs("div",{className:"stats stats-vertical lg:stats-horizontal shadow",children:[e.jsx("div",{className:"stat place-items-center",children:e.jsx("div",{className:"stat-value text-xl",children:a("os")})}),t.os.load_average.some(s=>s!==0)&&e.jsxs("div",{className:"stat place-items-center",children:[e.jsx("div",{className:"stat-title",children:a("load_average")}),e.jsx("div",{className:"stat-value text-lg",children:t.os.load_average.join(", ")}),e.jsx("div",{className:"stat-desc",children:e.jsx("a",{href:u,target:"_blank",rel:"noreferrer",className:"link link-hover",children:"1min, 5min, 15min"})})]}),e.jsxs("div",{className:"stat place-items-center",children:[e.jsx("div",{className:"stat-title",children:a("ram_usage")}),e.jsxs("div",{className:"stat-value text-lg",children:[t.os.memory_percent," %"]}),e.jsxs("div",{className:"stat-desc",children:[t.os.memory_used_mb," MB"]})]})]}),e.jsxs("div",{className:"stats stats-vertical lg:stats-horizontal shadow",children:[e.jsx("div",{className:"stat place-items-center",children:e.jsx("div",{className:"stat-value text-xl",children:a("process")})}),e.jsxs("div",{className:"stat place-items-center",children:[e.jsx("div",{className:"stat-title",children:a("uptime")}),e.jsx("div",{className:"stat-value text-lg",children:w(c,h.language)}),e.jsx("div",{className:"stat-desc",children:x(c)})]}),e.jsxs("div",{className:"stat place-items-center",children:[e.jsx("div",{className:"stat-title",children:a("ram_usage")}),e.jsxs("div",{className:"stat-value text-lg",children:[t.process.memory_percent," %"]}),e.jsxs("div",{className:"stat-desc",children:[t.process.memory_used_mb," MB"]})]})]}),e.jsxs("div",{className:"stats stats-vertical lg:stats-horizontal shadow",children:[e.jsx("div",{className:"stat place-items-center",children:e.jsx("div",{className:"stat-value text-xl",children:a("settings:mqtt")})}),e.jsxs("div",{className:"stat place-items-center",children:[e.jsx("div",{className:"stat-value text-lg",children:e.jsx(l,{icon:g,className:t.mqtt.connected?"text-success":"text-error"})}),e.jsxs("div",{className:"stat-desc",children:[a("queued"),": ",t.mqtt.queued]})]}),e.jsxs("div",{className:"stat place-items-center",children:[e.jsx("div",{className:"stat-title",children:a("published")}),e.jsx("div",{className:"stat-value text-lg",children:t.mqtt.published})]}),e.jsxs("div",{className:"stat place-items-center",children:[e.jsx("div",{className:"stat-title",children:a("received")}),e.jsx("div",{className:"stat-value text-lg",children:t.mqtt.received})]})]})]}),e.jsx(b,{id:"health-devices",columns:_,data:v})]})}export{A as default};
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{u as a,r as s,s as t,H as r,j as o}from"./index-
|
|
1
|
+
import{u as a,r as s,s as t,H as r,j as o}from"./index-BR27vzZL.js";import"./envs-CRUy-_iG.js";function d(){const e=a();return s.useEffect(()=>{e(t.get(r)==="dashboard"?"/dashboard":"/devices",{replace:!0})},[e]),o.jsx("div",{})}export{d as default};
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as i,j as e}from"./index-
|
|
1
|
+
import{r as i,j as e}from"./index-BR27vzZL.js";const c=i.memo(s=>{const{label:l,detail:t,onChange:a,onBlur:n,...r}=s;return e.jsxs("fieldset",{className:"fieldset",children:[l&&e.jsx("legend",{className:"fieldset-legend",children:l}),e.jsx("input",{className:`input min-w-xs${s.pattern||s.required?" validator":""}`,onChange:a,onBlur:n,...r}),t&&e.jsx("p",{className:"label",children:t})]})});export{c as I};
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r,j as n}from"./index-
|
|
1
|
+
import{r,j as n}from"./index-BR27vzZL.js";const l=r.memo(({obj:e,lines:a})=>{const t=JSON.stringify(e,null,4),s=a??Math.max(10,(t.match(/\n/g)||"").length+1);return n.jsx("textarea",{className:"textarea w-full",readOnly:!0,rows:s,defaultValue:t})});export{l as J};
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r,b as o,c as m,j as t,
|
|
1
|
+
import{r,b as o,c as m,j as t,a2 as c}from"./index-BR27vzZL.js";import{f as i}from"./format-DWdgGQ5D.js";const x=r.memo(({lastSeen:s,config:e})=>{const{i18n:n}=o(),a=m(s,e);return a?t.jsx("span",{title:c(a),children:i(a,n.language)}):t.jsx("span",{children:"N/A"})});export{x as L};
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as l,W as y,a as n,b as N,$ as S,j as s,a0 as x,F as u,f as k,B as p,A as E,a1 as I,a2 as M}from"./index-BR27vzZL.js";import{C as A}from"./CheckboxField-DL452sgi.js";import{D as F}from"./DebouncedInput-Oo6AI4sw.js";import{S as g}from"./SelectField-BMt7uZuS.js";import"./envs-CRUy-_iG.js";const G={error:"bg-error text-error-content",warning:"bg-warning text-warning-content",info:"bg-info text-info-content",debug:"bg-accent text-accent-content opacity-50"};function T(){const{sendMessage:m}=l.useContext(y),[t,d]=l.useState(""),[o,f]=l.useState("all"),[c,L]=l.useState(!1),j=n(e=>e.logsLimit),b=n(e=>e.bridgeInfo.config.advanced.log_level),{t:a}=N("logs"),r=n(e=>e.logs),v=n(e=>e.setLogsLimit),_=n(e=>e.clearLogs),h=l.useMemo(()=>r.filter(e=>(o==="all"||e.level===o)&&(c||!t||e.message.toLowerCase().includes(t.toLowerCase()))),[t,c,o,r]),C=l.useCallback((e,i)=>t&&e.toLowerCase().includes(t.toLowerCase())?G[i]:S[i],[t]),w=l.useCallback(async e=>{await m("bridge/request/options",{options:{advanced:{log_level:e}}})},[m]);return s.jsxs(s.Fragment,{children:[s.jsxs("div",{className:"flex flex-row flex-wrap gap-3 items-top",children:[s.jsxs(g,{name:"log_level",label:a("show_only"),value:o,onChange:e=>f(e.target.value),children:[s.jsx("option",{value:"all",children:"all"},"all"),x.map(e=>s.jsx("option",{value:e,children:e},e))]}),s.jsxs("fieldset",{className:"fieldset",children:[s.jsx("legend",{className:"fieldset-legend",children:a("filter_by_text")}),s.jsxs("div",{className:"join",children:[s.jsxs("label",{className:"input w-64 join-item",children:[s.jsx(u,{icon:k}),s.jsx(F,{className:"",type:"search",onChange:e=>d(e.toString()),placeholder:a("common:search"),value:t})]}),s.jsx(p,{item:"",onClick:d,className:"btn btn-square join-item",title:a("common:clear"),children:s.jsx(u,{icon:E})})]})]}),s.jsx(A,{name:"highlight_only",label:a("highlight_only"),checked:c,onChange:e=>L(e.target.checked)}),s.jsx(g,{name:"log_limit",label:a("logs_limit"),onChange:e=>{v(Number.parseInt(e.target.value))},value:j,children:I.map(e=>s.jsx("option",{value:e,children:e},e))}),s.jsx(p,{onClick:_,className:"btn btn-primary self-center",disabled:r.length===0,children:a("common:clear")}),s.jsx("div",{className:"ml-auto",children:s.jsx(g,{name:"log_level_config",label:a("log_level_config"),value:b,onChange:e=>!e.target.validationMessage&&w(e.target.value),children:x.map(e=>s.jsx("option",{value:e,children:e},e))})})]}),s.jsx("div",{className:"mockup-code w-full mt-1 mb-3",children:h.length>0?h.map((e,i)=>s.jsx("pre",{"data-prefix":i,className:C(e.message,e.level),children:s.jsxs("code",{children:["[",e.timestamp,"] ",e.message]})},`${e.timestamp}-${e.message}`)):s.jsx("pre",{"data-prefix":"~",children:s.jsxs("code",{children:["[",M(new Date),"] ",a("empty_logs_message")]})})})]})}export{T as default};
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r,j as t,F as i,
|
|
1
|
+
import{r,j as t,F as i,aV as a}from"./index-BR27vzZL.js";import{D as n}from"./DisplayValue-BOG1_pD9.js";const x=r.memo(({value:s})=>{let e="";return s&&(s<75?e="text-error":s<125?e="text-warning":s>200&&(e="text-success")),t.jsxs(t.Fragment,{children:[t.jsx(i,{icon:a,className:e})," ",t.jsx("span",{className:e,children:t.jsx(n,{value:s,name:"linkquality"})})]})});export{x as L};
|
|
Binary file
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./RawNetworkData-RqJboJd5.js","./index-BR27vzZL.js","./envs-CRUy-_iG.js","./index-LLsrh-Ne.css","./DeviceImage-C9XLyJZx.js","./index-Dn4wgen8.js","./DebouncedInput-Oo6AI4sw.js","./PowerSource-zOxQYLf3.js","./snakeCase-Dntle38p.js","./_createCompounder-j5DHCRsI.js","./index-Bs7zcW7e.js","./Lqi-D-5JxyY1.js","./DisplayValue-BOG1_pD9.js","./RawNetworkMap-TRBX0zwa.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{r as s,W as M,b as R,a as n,s as h,G as x,j as e,F as o,I as f,B as E,J as T,i as I,_ as w}from"./index-BR27vzZL.js";import{C as z}from"./CheckboxField-DL452sgi.js";import{S as g}from"./SelectField-BMt7uZuS.js";import"./envs-CRUy-_iG.js";const S=s.lazy(async()=>await w(()=>import("./RawNetworkData-RqJboJd5.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12]),import.meta.url)),F=s.lazy(async()=>await w(()=>import("./RawNetworkMap-TRBX0zwa.js"),__vite__mapDeps([13,1,2,3,5,10]),import.meta.url));function P(){const{sendMessage:u}=s.useContext(M),{t}=R(["network","common"]),i=n(a=>a.networkMapIsLoading),r=n(a=>a.networkMap),m=n(a=>a.setNetworkMap),d=n(a=>a.setNetworkMapIsLoading),[l,j]=s.useState("raw"),[c,k]=s.useState(!1),[p,v]=s.useState(h.get(x,"data")),y=s.useCallback(a=>{a.target.value&&j(a.target.value)},[]),b=s.useCallback(a=>{a.target.value&&(h.set(x,a.target.value),v(a.target.value))},[]),_=s.useCallback(a=>{k(a.target.checked)},[]),N=s.useCallback(async()=>{m(void 0),d(),await u("bridge/request/networkmap",{type:l,routes:c})},[l,c,m,d,u]),C=s.useMemo(()=>{if(i)return e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"flex flex-row justify-center items-center gap-2",children:e.jsx("span",{className:"loading loading-infinity loading-xl"})}),e.jsx("div",{className:"flex flex-row justify-center items-center gap-2",children:t("loading")})]});if(r)switch(r.type){case"raw":return p==="data"?e.jsx(S,{map:r.value}):e.jsx(F,{map:r.value});case"graphviz":return e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"alert alert-info alert-soft mb-3",role:"alert",children:[e.jsx(o,{icon:f,size:"2xl"}),t("copy_paste_on"),e.jsx("a",{href:"https://dreampuf.github.io/GraphvizOnline",target:"_blank",rel:"noreferrer",className:"link link-hover",children:"https://dreampuf.github.io/GraphvizOnline"}),e.jsx("a",{href:"https://edotor.net/",target:"_blank",rel:"noreferrer",className:"link link-hover",children:"https://edotor.net/"})]}),e.jsx("textarea",{className:"textarea w-full",rows:5,readOnly:!0,value:r.value})]});case"plantuml":return e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"alert alert-info alert-soft mb-3",role:"alert",children:[e.jsx(o,{icon:f,size:"2xl"}),t("copy_paste_on"),e.jsx("a",{href:"https://editor.plantuml.com/uml/",target:"_blank",rel:"noreferrer",className:"link link-hover",children:"https://editor.plantuml.com/uml/"}),e.jsx("a",{href:"https://www.planttext.com/",target:"_blank",rel:"noreferrer",className:"link link-hover",children:"https://www.planttext.com/"})]}),e.jsx("textarea",{className:"textarea w-full",rows:5,readOnly:!0,value:r.value})]})}return null},[r,i,p,t]);return e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"flex flex-row justify-center gap-3 mb-2",children:[e.jsxs(g,{name:"type",label:t("type"),value:l,onChange:y,children:[e.jsx("option",{value:"raw",children:t("raw")}),e.jsx("option",{value:"graphviz",children:t("graphviz")}),e.jsx("option",{value:"plantuml",children:t("plantuml")})]}),e.jsx(z,{name:"enable_routes",label:t("enable_routes"),checked:c,onChange:_}),e.jsx(E,{className:"btn btn-primary btn-square self-center ms-3 me-6",onClick:N,title:t(r?"reload":"load"),disabled:i,children:r?e.jsx(o,{icon:T}):e.jsx(o,{icon:I})}),l==="raw"&&e.jsxs(g,{name:"display_type",label:t("display_type"),value:p,onChange:b,children:[e.jsx("option",{value:"data",children:t("data")}),e.jsx("option",{value:"map",children:t("map")})]})]}),C]})}export{P as default};
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as l,j as e}from"./index-
|
|
1
|
+
import{r as l,j as e}from"./index-BR27vzZL.js";const j=l.memo(a=>{const{label:i,detail:u,onChange:c,onSubmit:m,defaultValue:t,minimal:d,...x}=a,[n,o]=l.useState(t);l.useEffect(()=>{o(t)},[t]);const g=l.useCallback(s=>{o(s.target.value?s.target.valueAsNumber:""),c?.(s)},[c]),r=l.useCallback(s=>{m?.(n,!s.target.validationMessage)},[m,n]);return e.jsxs("fieldset",{className:"fieldset",children:[i&&e.jsx("legend",{className:"fieldset-legend",children:i}),a.min!=null&&a.max!=null&&e.jsxs("div",{className:"w-full max-w-xs",children:[e.jsx("input",{className:"range range-xs range-primary",onChange:g,onTouchEnd:r,onMouseUp:r,...x,type:"range",value:n}),e.jsxs("div",{className:"flex justify-between px-1 mt-1 text-xs",children:[e.jsx("span",{children:a.min}),d&&e.jsx("span",{children:n}),e.jsx("span",{children:a.max})]})]}),!d&&e.jsx("input",{className:`input${a.pattern||a.required?" validator":""}`,onChange:g,onBlur:r,...x,type:"number",value:n}),u&&e.jsx("p",{className:"label whitespace-normal",children:u})]})});export{j as N};
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as o,b as f,j as s,B as S,F as u,
|
|
1
|
+
import{r as o,b as f,j as s,B as S,F as u,R as F,Q as h,S as g,T as q,U as M,a as L,W as z,L as A,V as O}from"./index-BR27vzZL.js";import{D as U}from"./DeviceImage-C9XLyJZx.js";import{C as P}from"./CheckboxField-DL452sgi.js";import{T as B}from"./Table-YMU-GTDx.js";import{M as R,V as T}from"./VendorLink-DuKl6tZD.js";import{P as E}from"./PowerSource-zOxQYLf3.js";import"./envs-CRUy-_iG.js";import"./index-Dn4wgen8.js";import"./DebouncedInput-Oo6AI4sw.js";import"./snakeCase-Dntle38p.js";import"./_createCompounder-j5DHCRsI.js";const I=o.memo(({label:l,remaining:n,progress:t})=>{if(n&&n>0){const a=Math.floor(n/3600),i=Math.floor(n/60)%60,m=Math.floor(n%60),r=a>0,b=i>0;return s.jsxs(s.Fragment,{children:[s.jsx("progress",{className:"progress w-48",value:t,max:"100"}),s.jsxs("div",{children:[l," ",r?`${a}:`:"",b?`${i.toString().padStart(2,"0")}:`:"",m.toString().padStart(2,"0")]})]})}return s.jsx("progress",{className:"progress w-48",value:t,max:"100"})}),V=o.memo(l=>{const{t:n}=f(["ota","common"]),{device:t,state:a,onCheckClick:i,onUpdateClick:m,onScheduleClick:r,onUnscheduleClick:b}=l;return a==null||a.state==="idle"?s.jsxs("div",{className:"join join-horizontal",children:[s.jsx(S,{className:"btn btn-square btn-outline btn-primary join-item",onClick:i,item:t.ieee_address,title:n("check"),children:s.jsx(u,{icon:F})}),s.jsx(h,{className:"btn btn-square btn-outline btn-info join-item",onClick:r,item:t.ieee_address,title:n("schedule"),modalDescription:n("schedule_info"),modalCancelLabel:n("common:cancel"),children:s.jsx(u,{icon:g})})]}):a.state==="updating"?s.jsx(I,{label:n("remaining_time"),remaining:a.remaining,progress:a.progress}):s.jsx("div",{className:"join join-horizontal",children:a.state==="available"?s.jsxs(s.Fragment,{children:[s.jsx(h,{className:"btn btn-square btn-outline btn-error join-item",onClick:m,item:t.ieee_address,title:n("update"),modalDescription:n("common:dialog_confirmation_prompt"),modalCancelLabel:n("common:cancel"),children:s.jsx(u,{icon:q})}),s.jsx(h,{className:"btn btn-square btn-outline btn-info join-item",onClick:r,item:t.ieee_address,title:n("schedule"),modalDescription:n("schedule_info"),modalCancelLabel:n("common:cancel"),children:s.jsx(u,{icon:g})})]}):a.state==="scheduled"?s.jsx(h,{className:"btn btn-square btn-outline btn-error join-item",onClick:b,item:t.ieee_address,title:n("unschedule"),modalDescription:n("common:dialog_confirmation_prompt"),modalCancelLabel:n("common:cancel"),children:s.jsx(u,{icon:M})}):s.jsxs(s.Fragment,{children:[s.jsx(S,{className:"btn btn-square btn-outline btn-primary join-item",onClick:i,item:t.ieee_address,title:n("check"),children:s.jsx(u,{icon:F})}),s.jsx(h,{className:"btn btn-square btn-outline btn-info join-item",onClick:r,item:t.ieee_address,title:n("schedule"),modalDescription:n("schedule_info"),modalCancelLabel:n("common:cancel"),children:s.jsx(u,{icon:g})})]})})}),D=o.memo(l=>{const{t:n}=f("ota"),t=o.useMemo(()=>{if(l.version==null||l.version<0)return;const a=l.version.toString(16).padStart(8,"0"),i=`${a[0]}.${a[1]}`,m=a.slice(2,4),r=`${a[4]}.${a[5]}`,b=a.slice(6);return[i,m,r,b]},[l.version]);return t===void 0?s.jsx("span",{children:"N/A"}):s.jsxs("div",{className:"join join-vertical",children:[s.jsxs("span",{className:"badge badge-sm badge-soft badge-ghost cursor-default join-item w-full",children:[n("app"),": ",`${t[0]} build ${t[1]}`]}),s.jsxs("span",{className:"badge badge-sm badge-soft badge-ghost cursor-default join-item w-full",children:[n("stack"),": ",`${t[2]} build ${t[3]}`]})]})}),K=o.memo(({device:l})=>{const{t:n}=f("zigbee");let t="https://github.com/Koenkk/zigbee-OTA/releases";const a=l.software_build_id||n("unknown");switch(l?.definition?.vendor){case"IKEA":t="https://ww8.ikea.com/ikeahomesmart/releasenotes/releasenotes.html";break;case"Inovelli":t="https://help.inovelli.com/en/articles/8503774-what-is-the-latest-firmware-version-for-your-device#h_b74c1e7dc6";break;case"Philips":t=`https://www.philips-hue.com/en-us/support/release-notes/${l.definition?.exposes.find(i=>i.type==="light")?"lamps":"accessories"}`;break;case"Ubisys":t=`https://www.ubisys.de/en/support/firmware/change-logs-${l.definition?.model?.replace(/[-]/g,"").toLowerCase()}/`;break}return s.jsx("a",{target:"_blank",rel:"noopener noreferrer",href:t,className:"link link-hover",children:a})});function te(){const l=L(e=>e.devices),n=L(e=>e.deviceStates),{sendMessage:t}=o.useContext(z),{t:a}=f(["ota","zigbee","common"]),[i,m]=o.useState([]),[r,b]=o.useState(!1);o.useEffect(()=>{m([])},[l]);const p=o.useMemo(()=>{const e=[];for(const c of l)if(c.definition?.supports_ota&&!c.disabled){const d=n[c.friendly_name]??{};(!r||d.update?.state==="available")&&e.push({device:c,state:d.update,batteryState:c.power_source==="Battery"?{batteryPercent:d.battery,batteryState:d.battery_state,batteryLow:d.battery_low}:void 0,selected:i.includes(c.ieee_address)})}return e},[n,l,i,r]),x=o.useCallback(e=>{e.target.checked?m(p.map(({device:c})=>c.ieee_address)):m([])},[p]),j=o.useCallback((e,c)=>{m(c?[...i,e.ieee_address]:i.filter(d=>d!==e.ieee_address))},[i]),k=o.useCallback(async()=>{await Promise.allSettled(i.map(e=>t("bridge/request/device/ota_update/check",{id:e})))},[t,i]),_=o.useCallback(async()=>{await Promise.allSettled(i.map(e=>t("bridge/request/device/ota_update/update",{id:e})))},[t,i]),C=o.useCallback(async e=>await t("bridge/request/device/ota_update/check",{id:e}),[t]),v=o.useCallback(async e=>await t("bridge/request/device/ota_update/update",{id:e}),[t]),w=o.useCallback(async e=>await t("bridge/request/device/ota_update/schedule",{id:e}),[t]),y=o.useCallback(async e=>await t("bridge/request/device/ota_update/unschedule",{id:e}),[t]),N=o.useCallback(e=>{b(e.target.checked)},[]),$=o.useMemo(()=>[{id:"select",header:()=>s.jsx("label",{children:s.jsx("input",{type:"checkbox",className:"checkbox",onChange:x,defaultChecked:i.length===p.length})}),accessorFn:()=>"",cell:({row:{original:{device:e,selected:c}}})=>s.jsx("label",{children:s.jsx("input",{type:"checkbox",className:"checkbox",onChange:d=>j(e,d.target.checked),defaultChecked:c})}),enableColumnFilter:!1,enableSorting:!1},{id:"friendly_name",header:a("common:friendly_name"),accessorFn:({device:e})=>[e.friendly_name,e.description,e.ieee_address].join(" "),cell:({row:{original:{device:e,state:c,batteryState:d}}})=>s.jsxs("div",{className:"flex items-center gap-3",children:[s.jsx("div",{className:"avatar",children:s.jsx("div",{className:"h-11 w-11",style:{overflow:"visible"},children:s.jsx(U,{device:e,otaState:c?.state,disabled:!1})})}),s.jsxs("div",{className:"flex-grow flex flex-col",children:[s.jsxs(A,{to:`/device/${e.ieee_address}/info`,className:"link link-hover",children:[e.friendly_name,e.friendly_name!==e.ieee_address?` (${e.ieee_address})`:""]}),e.description&&s.jsx("div",{className:"max-w-3xs text-xs opacity-50 truncate",title:e.description,children:e.description}),s.jsxs("div",{className:"flex flex-row gap-1 mt-0.5 items-center",children:[s.jsxs("span",{className:"badge badge-sm badge-soft badge-ghost cursor-default",title:a("zigbee:firmware_id"),children:[s.jsx(u,{icon:O}),s.jsx(K,{device:e}),e.date_code?s.jsxs("span",{title:a("zigbee:firmware_build_date"),children:[" (",e.date_code,")"]}):void 0]}),d&&s.jsx("span",{className:"badge badge-sm badge-soft badge-ghost cursor-default",children:s.jsx(E,{device:e,...d})})]})]})]}),filterFn:"includesString"},{id:"model",header:a("zigbee:model"),accessorFn:({device:e})=>[e.definition?.model,e.model_id,e.definition?.vendor,e.manufacturer].join(" "),cell:({row:{original:{device:e}}})=>s.jsxs(s.Fragment,{children:[s.jsx(R,{device:e}),s.jsx("div",{children:s.jsx("span",{className:"badge badge-sm badge-ghost",title:a("zigbee:manufacturer"),children:s.jsx(T,{device:e})})})]}),filterFn:"includesString"},{id:"firmware_version",header:a("firmware_version"),accessorFn:({state:e})=>e?.installed_version,cell:({row:{original:{state:e}}})=>s.jsx(D,{version:e?.installed_version}),enableColumnFilter:!1},{id:"available_firmware_version",header:a("available_firmware_version"),accessorFn:({state:e})=>e?.latest_version,cell:({row:{original:{state:e}}})=>s.jsx(D,{version:e?.latest_version}),enableColumnFilter:!1},{id:"actions",header:()=>s.jsxs(s.Fragment,{children:[s.jsx(P,{name:"available_only",detail:a("common:available_only"),onChange:N,checked:r,className:"checkbox checkbox-sm"}),s.jsxs("div",{className:"join join-horizontal",children:[s.jsx(h,{className:"btn btn-outline btn-error btn-xs join-item",onClick:k,title:a("check_selected"),modalDescription:a("common:dialog_confirmation_prompt"),modalCancelLabel:a("common:cancel"),disabled:i.length===0,children:a("check_selected")}),s.jsx(h,{className:"btn btn-outline btn-error btn-xs join-item",onClick:_,title:a("update_selected"),modalDescription:a("update_selected_info"),modalCancelLabel:a("common:cancel"),disabled:i.length===0,children:a("update_selected")})]})]}),accessorFn:({state:e})=>e?.state,cell:({row:{original:{device:e,state:c}}})=>s.jsx(V,{device:e,state:c,onCheckClick:C,onUpdateClick:v,onScheduleClick:w,onUnscheduleClick:y}),enableSorting:!1,enableColumnFilter:!1}],[i.length,p.length,r,x,j,k,_,C,v,w,y,N,a]);return s.jsx(B,{id:"ota-devices",columns:$,data:p})}export{te as default};
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as d,b as j,j as t,F as o,
|
|
1
|
+
import{r as d,b as j,j as t,F as o,bM as g,bJ as E,bN as B,bm as P,bC as f,bD as k,bE as w,bF as F,bw as m}from"./index-BR27vzZL.js";import{s as y}from"./snakeCase-Dntle38p.js";const L=d.memo(x=>{const{device:u,batteryPercent:a,batteryState:b,batteryLow:c,showLevel:h,...i}=x,{t:l}=j("zigbee");let s;switch(u?.power_source&&(s=u.power_source),s){case"Battery":{let p=l("battery"),r="",e=f,n=!1;if(a!=null)r=`${a}%`,a>=85?e=f:a>=65?e=k:a>=40?e=w:a>=20?e=F:(e=m,n=!0);else if(b!=null)switch(r=b,b){case"high":e=f;break;case"medium":e=w;break;case"low":e=m,n=!0;break}else c!=null&&(r=c?"low":"ok",e=c?m:f);return c===!0&&(n=!0),r!==""&&(p+=`, ${l("power_level")}: ${r}`),t.jsxs("span",{className:n?"text-error":"",children:[t.jsx(o,{icon:e,fade:n,title:p,...i}),h&&t.jsx("span",{className:"ps-2",children:r})]})}case"Mains (single phase)":case"Mains (3 phase)":case"DC Source":return t.jsx(o,{icon:P,title:l(y(s)),...i});case"Emergency mains and transfer switch":case"Emergency mains constantly powered":return t.jsx(o,{icon:B,title:l(y(s)),...i});default:return u?.type==="GreenPower"?t.jsx(o,{icon:g,title:"Green",...i}):t.jsx(o,{icon:E,title:s?l(y(s)):void 0,...i})}});export{L as P};
|
|
Binary file
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{a8 as or,r as ee,b as Ni,j as w,t as pt,F as Ge,aq as pp,L as Wi,a as dp,Y as vp,f as xp,B as _s,A as ps,ar as wp}from"./index-BR27vzZL.js";import{D as xs}from"./DeviceImage-C9XLyJZx.js";import{D as ds}from"./DebouncedInput-Oo6AI4sw.js";import{P as Ap}from"./PowerSource-zOxQYLf3.js";import{Z as gt}from"./index-Bs7zcW7e.js";import{L as mp}from"./Lqi-D-5JxyY1.js";import"./envs-CRUy-_iG.js";import"./index-Dn4wgen8.js";import"./snakeCase-Dntle38p.js";import"./_createCompounder-j5DHCRsI.js";import"./DisplayValue-BOG1_pD9.js";var _t={exports:{}};/**
|
|
2
2
|
* @license
|
|
3
3
|
* Lodash <https://lodash.com/>
|
|
4
4
|
* Copyright OpenJS Foundation and other contributors <https://openjsf.org/>
|
|
Binary file
|