zigbee2mqtt-windfront 1.5.1 → 1.5.2
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-CjM5WomG.js → About-guM5jIIL.js} +1 -1
- package/dist/assets/About-guM5jIIL.js.br +0 -0
- package/dist/assets/{Availability-BiumPUeO.js → Availability-9y0Errm-.js} +1 -1
- package/dist/assets/Availability-9y0Errm-.js.br +0 -0
- package/dist/assets/{Bind-DjOXtTM6.js → Bind-Dzsbdj9O.js} +1 -1
- package/dist/assets/Bind-Dzsbdj9O.js.br +0 -0
- package/dist/assets/Bridge-DhOd4BAF.js +1 -0
- package/dist/assets/Bridge-DhOd4BAF.js.br +0 -0
- package/dist/assets/{CheckboxField-De0QHbsG.js → CheckboxField-DnsgrtmM.js} +1 -1
- package/dist/assets/CheckboxField-DnsgrtmM.js.br +1 -0
- package/dist/assets/{ClusterSinglePicker-Di8d-bx5.js → ClusterSinglePicker-DlPNbPK2.js} +1 -1
- package/dist/assets/ClusterSinglePicker-DlPNbPK2.js.br +0 -0
- package/dist/assets/{Clusters-EXal5imX.js → Clusters-CJHqlXOr.js} +1 -1
- package/dist/assets/Clusters-CJHqlXOr.js.br +0 -0
- package/dist/assets/{Dashboard-DNnODdKY.js → Dashboard-DrykpWoV.js} +1 -1
- package/dist/assets/Dashboard-DrykpWoV.js.br +0 -0
- package/dist/assets/{DashboardFeatureWrapper-TlB_F76s.js → DashboardFeatureWrapper-BV-EJkYu.js} +1 -1
- package/dist/assets/DashboardFeatureWrapper-BV-EJkYu.js.br +0 -0
- package/dist/assets/{DebouncedInput-C8tkXJ7U.js → DebouncedInput-BbusN73N.js} +1 -1
- package/dist/assets/DebouncedInput-BbusN73N.js.br +0 -0
- package/dist/assets/{DevConsole-BCcxO2rX.js → DevConsole-CdaQK61e.js} +1 -1
- package/dist/assets/DevConsole-CdaQK61e.js.br +0 -0
- package/dist/assets/{DevConsole-YqbpD45I.js → DevConsole-QAj8WJrx.js} +1 -1
- package/dist/assets/DevConsole-QAj8WJrx.js.br +0 -0
- package/dist/assets/{DeviceCard-C9vw9b6F.js → DeviceCard-BibgHF2R.js} +1 -1
- package/dist/assets/DeviceCard-BibgHF2R.js.br +0 -0
- package/dist/assets/{DeviceControlEditName-BObC136U.js → DeviceControlEditName-CW6kAJai.js} +1 -1
- package/dist/assets/DeviceControlEditName-CW6kAJai.js.br +0 -0
- package/dist/assets/{DeviceImage-DshByPQQ.js → DeviceImage-XiUg0NFS.js} +1 -1
- package/dist/assets/DeviceImage-XiUg0NFS.js.br +0 -0
- package/dist/assets/{DeviceInfo-V522QLe7.js → DeviceInfo-DfhI34CI.js} +1 -1
- package/dist/assets/DeviceInfo-DfhI34CI.js.br +0 -0
- package/dist/assets/{DevicePage-BGbRRkF3.js → DevicePage-konyOtA_.js} +2 -2
- package/dist/assets/DevicePage-konyOtA_.js.br +0 -0
- package/dist/assets/{DevicePicker-DUSP1774.js → DevicePicker-BPQGOPp-.js} +1 -1
- package/dist/assets/DevicePicker-BPQGOPp-.js.br +0 -0
- package/dist/assets/{DeviceSettings-BPsmP0OM.js → DeviceSettings-DXxqeQBJ.js} +1 -1
- package/dist/assets/DeviceSettings-DXxqeQBJ.js.br +0 -0
- package/dist/assets/{DeviceSpecificSettings-eDupl8hE.js → DeviceSpecificSettings-BThCFadV.js} +1 -1
- package/dist/assets/DeviceSpecificSettings-BThCFadV.js.br +0 -0
- package/dist/assets/{Devices-TK6OH5en.js → Devices-CpkAlK0U.js} +1 -1
- package/dist/assets/Devices-CpkAlK0U.js.br +0 -0
- package/dist/assets/{DevicesPage-DCVj8eRe.js → DevicesPage-B5NXgkRE.js} +1 -1
- package/dist/assets/DevicesPage-B5NXgkRE.js.br +0 -0
- package/dist/assets/{DisplayValue-CfKoGI0j.js → DisplayValue-DKwqD83w.js} +1 -1
- package/dist/assets/DisplayValue-DKwqD83w.js.br +0 -0
- package/dist/assets/{Donate-B_P_Qsjc.js → Donate-nv8pXVg4.js} +1 -1
- package/dist/assets/Donate-nv8pXVg4.js.br +0 -0
- package/dist/assets/{EndpointPicker-CKjImsmQ.js → EndpointPicker-wR5nrVyy.js} +1 -1
- package/dist/assets/EndpointPicker-wR5nrVyy.js.br +0 -0
- package/dist/assets/{Exposes-CY4p-R2G.js → Exposes-Cndo2Hi0.js} +1 -1
- package/dist/assets/Exposes-Cndo2Hi0.js.br +0 -0
- package/dist/assets/{Feature-DKsa0Oda.js → Feature-DRiBEd30.js} +1 -1
- package/dist/assets/Feature-DRiBEd30.js.br +0 -0
- package/dist/assets/{Frontend-V9wqeWFl.js → Frontend-HvSxr47P.js} +1 -1
- package/dist/assets/Frontend-HvSxr47P.js.br +0 -0
- package/dist/assets/{GroupPage-NDEFGCAo.js → GroupPage-CB6GFdZU.js} +2 -2
- package/dist/assets/GroupPage-CB6GFdZU.js.br +0 -0
- package/dist/assets/{GroupSettings-C9hZwz-c.js → GroupSettings-CFgdJ-vx.js} +1 -1
- package/dist/assets/GroupSettings-CFgdJ-vx.js.br +0 -0
- package/dist/assets/{Groups-BBXSMxiv.js → Groups-PKw32Dqb.js} +1 -1
- package/dist/assets/Groups-PKw32Dqb.js.br +0 -0
- package/dist/assets/{GroupsPage-Bjp4L8m8.js → GroupsPage-BM9MSx3r.js} +1 -1
- package/dist/assets/GroupsPage-BM9MSx3r.js.br +0 -0
- package/dist/assets/{Health-DaYm6W6j.js → Health-BTbkKEto.js} +1 -1
- package/dist/assets/Health-BTbkKEto.js.br +0 -0
- package/dist/assets/{HomePage-_eUNylSo.js → HomePage-DAV81oPD.js} +1 -1
- package/dist/assets/HomePage-DAV81oPD.js.br +0 -0
- package/dist/assets/{InputField-D4dIbfoE.js → InputField-D8fYIAZ2.js} +1 -1
- package/dist/assets/InputField-D8fYIAZ2.js.br +0 -0
- package/dist/assets/{Json-CL1gHmYN.js → Json-C6OVoNML.js} +1 -1
- package/dist/assets/Json-C6OVoNML.js.br +0 -0
- package/dist/assets/{LastSeen-CUs1Vb2e.js → LastSeen-kmLjgf_4.js} +1 -1
- package/dist/assets/LastSeen-kmLjgf_4.js.br +0 -0
- package/dist/assets/{LogsPage-Rn9K7jry.js → LogsPage-Dv7tRxMp.js} +1 -1
- package/dist/assets/LogsPage-Dv7tRxMp.js.br +0 -0
- package/dist/assets/{Lqi-DXzNBOZd.js → Lqi-BZ7lW9bx.js} +1 -1
- package/dist/assets/Lqi-BZ7lW9bx.js.br +0 -0
- package/dist/assets/{NetworkPage-B-vdyAjg.js → NetworkPage-Ln79YwqY.js} +2 -2
- package/dist/assets/NetworkPage-Ln79YwqY.js.br +0 -0
- package/dist/assets/{NumberField-1g9cUedG.js → NumberField-iJErwbzA.js} +1 -1
- package/dist/assets/NumberField-iJErwbzA.js.br +0 -0
- package/dist/assets/{OtaPage-xoAmQlkN.js → OtaPage-D9JG90cZ.js} +1 -1
- package/dist/assets/OtaPage-D9JG90cZ.js.br +0 -0
- package/dist/assets/{PowerSource-DHbzVhTD.js → PowerSource-DgbKMgpx.js} +1 -1
- package/dist/assets/PowerSource-DgbKMgpx.js.br +0 -0
- package/dist/assets/{RawNetworkData-BA35YEdR.js → RawNetworkData-CxfFhrfx.js} +1 -1
- package/dist/assets/RawNetworkData-CxfFhrfx.js.br +0 -0
- package/dist/assets/RawNetworkMap-CSbVvyka.js +4256 -0
- package/dist/assets/RawNetworkMap-CSbVvyka.js.br +0 -0
- package/dist/assets/{RecallRemove-UfYYwosz.js → RecallRemove-ByrNeUbK.js} +1 -1
- package/dist/assets/RecallRemove-ByrNeUbK.js.br +0 -0
- package/dist/assets/{Reporting-D-T0p7pR.js → Reporting-BKKOgcmJ.js} +1 -1
- package/dist/assets/Reporting-BKKOgcmJ.js.br +0 -0
- package/dist/assets/Scene-org1InOA.js +1 -0
- package/dist/assets/Scene-org1InOA.js.br +0 -0
- package/dist/assets/{SelectField-BFSZ1jgU.js → SelectField-CwoktH0d.js} +1 -1
- package/dist/assets/SelectField-CwoktH0d.js.br +0 -0
- package/dist/assets/{Settings-8U06br4I.js → Settings-BcaEyteR.js} +1 -1
- package/dist/assets/Settings-BcaEyteR.js.br +0 -0
- package/dist/assets/{SettingsList-B5lRPdmf.js → SettingsList-C3vSq4jP.js} +1 -1
- package/dist/assets/SettingsList-C3vSq4jP.js.br +0 -0
- package/dist/assets/{SettingsPage-JGHlT8fi.js → SettingsPage-ChO0o-ok.js} +2 -2
- package/dist/assets/SettingsPage-ChO0o-ok.js.br +0 -0
- package/dist/assets/State-_uoH9Qaz.js +1 -0
- package/dist/assets/State-_uoH9Qaz.js.br +0 -0
- package/dist/assets/{Table-BvIilxHn.js → Table-D8Gdn1uG.js} +1 -1
- package/dist/assets/Table-D8Gdn1uG.js.br +0 -0
- package/dist/assets/{TextareaField-DgNWd4bB.js → TextareaField-Busy2yTR.js} +1 -1
- package/dist/assets/TextareaField-Busy2yTR.js.br +0 -0
- package/dist/assets/{Tools-BQw74JrP.js → Tools-B3Y0Qd8A.js} +1 -1
- package/dist/assets/Tools-B3Y0Qd8A.js.br +0 -0
- package/dist/assets/{TouchlinkPage-Dkq8XRUw.js → TouchlinkPage-Bg_tWjMg.js} +1 -1
- package/dist/assets/TouchlinkPage-Bg_tWjMg.js.br +0 -0
- package/dist/assets/{VendorLink-AmsYWJKL.js → VendorLink-KoryP9lw.js} +1 -1
- package/dist/assets/VendorLink-KoryP9lw.js.br +0 -0
- package/dist/assets/{_createCompounder-CDCf6N6Y.js → _createCompounder-Db7SjIIq.js} +1 -1
- package/dist/assets/_createCompounder-Db7SjIIq.js.br +0 -0
- package/dist/assets/{format-CFXT8pE2.js → format-CsVfcRLB.js} +1 -1
- package/dist/assets/format-CsVfcRLB.js.br +0 -0
- package/dist/assets/{index-iXNIEDco.js → index-B9KSRkAy.js} +3 -3
- package/dist/assets/index-B9KSRkAy.js.br +0 -0
- package/dist/assets/{index-Dncflq5A.js → index-DajxErfA.js} +1 -1
- package/dist/assets/index-DajxErfA.js.br +0 -0
- package/dist/assets/{jszip.min-D1cnnDNI.js → jszip.min-2t6j1PLa.js} +1 -1
- package/dist/assets/jszip.min-2t6j1PLa.js.br +0 -0
- package/dist/assets/snakeCase-BsE9z82R.js +1 -0
- package/dist/assets/snakeCase-BsE9z82R.js.br +0 -0
- package/dist/index.html +1 -1
- package/dist/index.html.br +0 -0
- package/package.json +2 -2
- package/dist/assets/About-CjM5WomG.js.br +0 -0
- package/dist/assets/Availability-BiumPUeO.js.br +0 -0
- package/dist/assets/Bind-DjOXtTM6.js.br +0 -0
- package/dist/assets/Bridge-D1gYoITl.js +0 -1
- package/dist/assets/Bridge-D1gYoITl.js.br +0 -0
- package/dist/assets/CheckboxField-De0QHbsG.js.br +0 -0
- package/dist/assets/ClusterSinglePicker-Di8d-bx5.js.br +0 -0
- package/dist/assets/Clusters-EXal5imX.js.br +0 -0
- package/dist/assets/Dashboard-DNnODdKY.js.br +0 -0
- package/dist/assets/DashboardFeatureWrapper-TlB_F76s.js.br +0 -0
- package/dist/assets/DebouncedInput-C8tkXJ7U.js.br +0 -0
- package/dist/assets/DevConsole-BCcxO2rX.js.br +0 -0
- package/dist/assets/DevConsole-YqbpD45I.js.br +0 -0
- package/dist/assets/DeviceCard-C9vw9b6F.js.br +0 -0
- package/dist/assets/DeviceControlEditName-BObC136U.js.br +0 -0
- package/dist/assets/DeviceImage-DshByPQQ.js.br +0 -0
- package/dist/assets/DeviceInfo-V522QLe7.js.br +0 -0
- package/dist/assets/DevicePage-BGbRRkF3.js.br +0 -0
- package/dist/assets/DevicePicker-DUSP1774.js.br +0 -0
- package/dist/assets/DeviceSettings-BPsmP0OM.js.br +0 -0
- package/dist/assets/DeviceSpecificSettings-eDupl8hE.js.br +0 -0
- package/dist/assets/Devices-TK6OH5en.js.br +0 -0
- package/dist/assets/DevicesPage-DCVj8eRe.js.br +0 -0
- package/dist/assets/DisplayValue-CfKoGI0j.js.br +0 -0
- package/dist/assets/Donate-B_P_Qsjc.js.br +0 -0
- package/dist/assets/EndpointPicker-CKjImsmQ.js.br +0 -0
- package/dist/assets/Exposes-CY4p-R2G.js.br +0 -3
- package/dist/assets/Feature-DKsa0Oda.js.br +0 -0
- package/dist/assets/Frontend-V9wqeWFl.js.br +0 -0
- package/dist/assets/GroupPage-NDEFGCAo.js.br +0 -0
- package/dist/assets/GroupSettings-C9hZwz-c.js.br +0 -0
- package/dist/assets/Groups-BBXSMxiv.js.br +0 -0
- package/dist/assets/GroupsPage-Bjp4L8m8.js.br +0 -0
- package/dist/assets/Health-DaYm6W6j.js.br +0 -0
- package/dist/assets/HomePage-_eUNylSo.js.br +0 -0
- package/dist/assets/InputField-D4dIbfoE.js.br +0 -0
- package/dist/assets/Json-CL1gHmYN.js.br +0 -0
- package/dist/assets/LastSeen-CUs1Vb2e.js.br +0 -0
- package/dist/assets/LogsPage-Rn9K7jry.js.br +0 -0
- package/dist/assets/Lqi-DXzNBOZd.js.br +0 -0
- package/dist/assets/NetworkPage-B-vdyAjg.js.br +0 -0
- package/dist/assets/NumberField-1g9cUedG.js.br +0 -0
- package/dist/assets/OtaPage-xoAmQlkN.js.br +0 -0
- package/dist/assets/PowerSource-DHbzVhTD.js.br +0 -0
- package/dist/assets/RawNetworkData-BA35YEdR.js.br +0 -0
- package/dist/assets/RawNetworkMap-IKJdBkYI.js +0 -4256
- package/dist/assets/RawNetworkMap-IKJdBkYI.js.br +0 -0
- package/dist/assets/RecallRemove-UfYYwosz.js.br +0 -0
- package/dist/assets/Reporting-D-T0p7pR.js.br +0 -0
- package/dist/assets/Scene-CBkAt36p.js +0 -1
- package/dist/assets/Scene-CBkAt36p.js.br +0 -0
- package/dist/assets/SelectField-BFSZ1jgU.js.br +0 -5
- package/dist/assets/Settings-8U06br4I.js.br +0 -0
- package/dist/assets/SettingsList-B5lRPdmf.js.br +0 -0
- package/dist/assets/SettingsPage-JGHlT8fi.js.br +0 -0
- package/dist/assets/State-qRhsFF8C.js +0 -1
- package/dist/assets/State-qRhsFF8C.js.br +0 -0
- package/dist/assets/Table-BvIilxHn.js.br +0 -0
- package/dist/assets/TextareaField-DgNWd4bB.js.br +0 -0
- package/dist/assets/Tools-BQw74JrP.js.br +0 -0
- package/dist/assets/TouchlinkPage-Dkq8XRUw.js.br +0 -0
- package/dist/assets/VendorLink-AmsYWJKL.js.br +0 -0
- package/dist/assets/_createCompounder-CDCf6N6Y.js.br +0 -0
- package/dist/assets/format-CFXT8pE2.js.br +0 -0
- package/dist/assets/index-Dncflq5A.js.br +0 -1
- package/dist/assets/index-iXNIEDco.js.br +0 -0
- package/dist/assets/jszip.min-D1cnnDNI.js.br +0 -0
- package/dist/assets/snakeCase-2EvkzqTo.js +0 -1
- package/dist/assets/snakeCase-2EvkzqTo.js.br +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
import{ag as le,aW as rr,aX as tr,aY as ar,aZ as nr,l as sr,a_ as or,a$ as cr,b0 as ir,b1 as lr,b2 as ur,aO as ue,b3 as me,b4 as mr,b5 as fr,b6 as hr,b7 as pr,b8 as dr,b9 as xr,ba as fe,bb as br,bc as he,bd as gr,be as _r,bf as L,bg as pe,bh as de,a2 as yr,bi as Cr,bj as vr,bk as jr,bl as Sr,bm as Tr,bn as kr,bo as Er,bp as Nr,bq as Rr,br as Ar,bs as wr,bt as Fr,bu as qr,bv as $r,bw as Ir,bx as Br,by as Mr,bz as Vr,bA as Or,bB as F,aQ as Gr,bC as xe,bD as Ur,bE as Hr,bF as Lr,bG as Pr,bH as Be,bI as zr,bJ as Me,bK as Wr,bL as Dr,bM as Xr,bN as Qr,r as i,j as o,b as w,B as S,F as ie,bO as Yr,ax as Jr,bP as Kr,bQ as Zr,M as et}from"./index-iXNIEDco.js";import{D as U}from"./DisplayValue-CfKoGI0j.js";import{r as Ve,a as Oe,b as rt}from"./_createCompounder-CDCf6N6Y.js";var P,be;function tt(){if(be)return P;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 P=e,P}var z,ge;function at(){if(ge)return z;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 z=a,z}var W,_e;function Ge(){if(_e)return W;_e=1;var e="\\ud800-\\udfff",a="\\u0300-\\u036f",t="\\ufe20-\\ufe2f",r="\\u20d0-\\u20ff",s=a+t+r,n="\\ufe0e\\ufe0f",u="\\u200d",c=RegExp("["+u+e+s+n+"]");function f(l){return c.test(l)}return W=f,W}var D,ye;function nt(){if(ye)return D;ye=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+"]",c="["+s+"]",f="\\ud83c[\\udffb-\\udfff]",l="(?:"+c+"|"+f+")",d="[^"+e+"]",h="(?:\\ud83c[\\udde6-\\uddff]){2}",m="[\\ud800-\\udbff][\\udc00-\\udfff]",p="\\u200d",x=l+"?",y="["+n+"]?",j="(?:"+p+"(?:"+[d,h,m].join("|")+")"+y+x+")*",N=y+x+j,b="(?:"+[d+c+"?",c,h,m,u].join("|")+")",g=RegExp(f+"(?="+f+")|"+b+N,"g");function C(E){return E.match(g)||[]}return X=C,X}var Q,ve;function ot(){if(ve)return Q;ve=1;var e=nt(),a=Ge(),t=st();function r(s){return a(s)?t(s):e(s)}return Q=r,Q}var Y,je;function ct(){if(je)return Y;je=1;var e=at(),a=Ge(),t=ot(),r=Ve();function s(n){return function(u){u=r(u);var c=a(u)?t(u):void 0,f=c?c[0]:u.charAt(0),l=c?e(c,1).join(""):u.slice(1);return f[n]()+l}}return Y=s,Y}var J,Se;function Ue(){if(Se)return J;Se=1;var e=ct(),a=e("toUpperCase");return J=a,J}var K,Te;function it(){if(Te)return K;Te=1;var e=Ve(),a=Ue();function t(r){return a(e(r).toLowerCase())}return K=t,K}var Z,ke;function lt(){if(ke)return Z;ke=1;var e=it(),a=Oe(),t=a(function(r,s,n){return s=s.toLowerCase(),r+(n?e(s):s)});return Z=t,Z}var ut=lt();const mt=le(ut);var ee,Ee;function ft(){if(Ee)return ee;Ee=1;var e=Oe(),a=Ue(),t=e(function(r,s,n){return r+(n?" ":"")+a(s)});return ee=t,ee}var ht=ft();const pt=le(ht),dt={battery_low:F,humidity:Or,illuminance:L,pressure:Vr,co2:Mr,voltage:Br,state:Ir,brightness:L,occupancy:$r,presence:qr,current:Fr,power:wr,energy:Ar,frequency:Rr,tamper:Nr,smoke:Er,radiation_dose_per_hour:kr,radioactive_events_per_minute:Tr,power_factor:Sr,mode:jr,sound:vr,position:Cr,alarm:yr,color_xy:de,color_hs:de,color_temp:pe,color_temp_startup:pe,illuminance_lux:L,soil_moisture:_r,water_leak:fe,week:gr,workdays_schedule:he,holidays_schedule:he,away_mode:br,vibration:fe,power_outage_count:xr,action:dr,angle_x:pr,angle_y:hr,angle_z:fr,side:mr,humidity_alarm:me,temperature_alarm:me,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=F;return e==null||(e>=85?(t=Be,a.push("text-success")):e>=65?t=zr:e>=40?t=Me:e>=20?t=Wr:(t=F,a.push("text-error"))),t},bt=(e,a)=>{let t=F;switch(e){case"high":{t=Be,a.push("text-success");break}case"medium":{t=Me;break}case"low":{t=F,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=Lr:e>=15?r=Pr:e<5&&(r=xe,t.push("text-info"))),r},_t=(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:Qr,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]:[Gr,"opacity-0",{}])},He=e=>`${e.type}-${e.name}-${e.label}-${e.property}-${e.access}-${e.category}-${e.endpoint}`;var v=(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))(v||{});const q=i.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})]})),$=i.memo(e=>o.jsxs("div",{className:"alert alert-warning",role:"alert",children:["Unknown access ",o.jsx("pre",{children:e.feature.access})]})),yt=i.memo(e=>{const{feature:{access:a=v.SET,name:t,property:r,value_off:s,value_on:n},deviceValue:u,onChange:c,minimal:f}=e,{t:l}=w("zigbee"),d=i.useCallback(m=>c({[r]:m}),[r,c]),h=i.useCallback(m=>c({[r]:m.target.checked?n:s}),[n,s,r,c]);if(a&v.SET){const m=u!=null,p=!f||f&&!m;return o.jsxs("div",{children:[p&&o.jsx(S,{className:"btn btn-link",item:s,onClick:d,children:o.jsx(U,{value:s,name:t})}),m?o.jsx("input",{className:"toggle",type:"checkbox",checked:u===n,onChange:h}):o.jsx(ie,{icon:Yr,title:l("unknown")}),p&&o.jsx(S,{className:"btn btn-link",item:n,onClick:d,children:o.jsx(U,{value:n,name:t})})]})}return a&v.STATE?o.jsx(q,{...e}):o.jsx($,{...e})}),R=i.memo(e=>{const{feature:a,onChange:t,parentFeatures:r,onRead:s,device:n,deviceState:u,featureWrapperClass:c,minimal:f,endpointSpecific:l,steps:d}=e,{type:h,property:m}=a,[p,x]=i.useState({}),{t:y}=w(["composite","common"]),j=i.useMemo(()=>Jr({},u,p),[u,p]),N="features"in a&&a.features||[],b=i.useMemo(()=>{if(h==="composite"&&r!==void 0){if(r.length===0)return!0;if(r.length===1){const _=r[0].type;return _!=null&&_!=="composite"&&_!=="list"}}return!1},[h,r]);i.useEffect(()=>{x({})},[n.ieee_address]);const g=i.useCallback(_=>{x({...p,..._}),b||t(h==="composite"&&m?{[m]:{...p,..._}}:_)},[p,h,m,b,t]),C=i.useCallback(()=>{const _={...u,...p};t(m?{[m]:_}:_)},[m,t,p,u]),E=i.useCallback(_=>{s?.(h==="composite"&&m?{[m]:_}:_)},[s,h,m]);return o.jsxs(o.Fragment,{children:[N.map(_=>o.jsx(er,{feature:_,parentFeatures:r??[],device:n,deviceState:j,onChange:g,onRead:E,featureWrapperClass:c,minimal:f,endpointSpecific:l,steps:d?.[_.name]},He(_))),b&&o.jsx("div",{className:"self-end float-right",children:o.jsx(S,{className:`btn btn-primary ${f?"btn-sm":""}`,onClick:C,children:y("common:apply")})})]})}),Ct=i.memo(e=>o.jsx(R,{...e}));var re,Ne;function vt(){if(Ne)return re;Ne=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,Re;function jt(){if(Re)return te;Re=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=Kr(),t=rt(),r=NaN,s=/^[-+]0x[0-9a-f]+$/i,n=/^0b[01]+$/i,u=/^0o[0-7]+$/i,c=parseInt;function f(l){if(typeof l=="number")return l;if(t(l))return r;if(a(l)){var d=typeof l.valueOf=="function"?l.valueOf():l;l=a(d)?d+"":d}if(typeof l!="string")return l===0?l:+l;l=e(l);var h=n.test(l);return h||u.test(l)?c(l.slice(2),h?2:8):s.test(l)?r:+l}return ne=f,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 k=le(Et),Nt=[.412453,.35758,.180423,.212671,.71516,.072169,.019334,.119193,.950227],Rt=[3.2404813432005266,-1.5371515162713183,-.49853632616888777,-.9692549499965684,1.8759900014898907,.041555926558292815,.05564663913517715,-.20404133836651123,1.0573110696453443],Le=.42,Pe=.0031308,ze=12.92,H=.055,O=e=>e<=Pe?ze*e:(1+H)*e**Le-H,At=1/Le,wt=O(Pe),Ft=1/ze,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,Nt)},qt=(e,a,t)=>{const r=We([e,a,t],Rt);return[O(r[0]),O(r[1]),O(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[c,f,l]=qe(1,1,1),d=c+f+l;return[c/d,f/d,0]}const[r,s,n]=qe(e,a,t),u=r+s+n;return[r/u,s/u,s]},$t=(e,a,t)=>{t===void 0&&(t=Xe(e,a));const[r,s,n]=De(e,a,t);return[k(r*255,0,255),k(s*255,0,255),k(n*255,0,255)]},B=(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,c=r*100;return[k(n,0,360),k(u,0,100),k(c,0,100)]},It=(e,a,t)=>{a/=100,t/=100;const r=~~(e/60),s=e/60-r,n=t*(1-a),u=t*(1-a*s),c=t*(1-a*(1-s)),f=r%6,l=[t,u,n,n,c,t][f]*255,d=[c,t,t,u,n,n][f]*255,h=[n,n,c,t,t,u][f]*255;return[k(l,0,255),k(d,0,255),k(h,0,255)]},M=(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))),A=(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]:$t(t,r,s);return{color_rgb:n,color_hs:B(...n),color_xy:[t,r,s],hex:M(...n)}}case"color_hs":{const{hue:t=0,saturation:r=0}=e,s=100,n=It(t,r,s);return{color_rgb:n,color_hs:[t,r,s],color_xy:I(...n),hex:M(...n)}}case"color_rgb":{const{r:t=255,g:r=255,b:s=255}=e;return{color_rgb:[t,r,s],color_hs:B(t,r,s),color_xy:I(t,r,s),hex:M(t,r,s)}}case"hex":{const t=e.hex,r=Bt(t);return{color_rgb:r,color_hs:B(...r),color_xy:I(...r),hex:t}}default:{const t=[255,255,255];return{color_rgb:t,color_hs:B(...t),color_xy:I(...t),hex:M(...t)}}}},$e=(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}}},Qe=e=>`${e[0].toFixed(3)}, ${e[1].toFixed(3)}, ${e[2].toFixed(3)}`,G=e=>`${e[0].toFixed(2)}°, ${e[1].toFixed(2)}%, ${e[2].toFixed(2)}%`,Ye=e=>`${e[0].toFixed(0)}, ${e[1].toFixed(0)}, ${e[2].toFixed(0)}`,Je=e=>e,Ie=e=>({color_xy:Qe(e.color_xy),color_hs:G(e.color_hs),color_rgb:Ye(e.color_rgb),hex:Je(e.hex)}),Mt=e=>{const a=e.match(/\d+(\.\d+)?/gu)??[];return Array.from({length:3}).map((t,r)=>+(a[r]??0))},Vt=e=>{const a=e.match(/\d+(\.\d+)?/gu)??[];return Array.from({length:3}).map((t,r)=>k(+(a[r]??0),0,r?100:360))},Ot=e=>{const a=e.match(/\d+(\.\d+)?/gu)??[];return Array.from({length:3}).map((t,r)=>k(+(a[r]??0),0,255))},ce=(e,a)=>{switch(a){case"color_xy":{const t=Mt(e);return A({x:t[0],y:t[1]},"color_xy")}case"color_hs":{const t=Vt(e);return A({hue:t[0],saturation:t[1]},"color_hs")}case"color_rgb":{const t=Ot(e);return A({r:t[0],g:t[1],b:t[2]},"color_rgb")}case"hex":return A({hex:e},"hex")}},Gt="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=i.memo(({label:e,...a})=>o.jsxs("label",{className:"input",children:[e,o.jsx("input",{type:"text",className:"grow",...a})]})),Ke=i.memo(e=>{const{onChange:a,value:t={},format:r,minimal:s}=e,[n,u]=i.useState(A(t,r)),[c,f]=i.useState(Ie(n)),[l,d]=i.useState({color_rgb:!1,color_hs:!1,color_xy:!1,hex:!1});i.useEffect(()=>{const b=A(t,r);u(b),f(Ie(b))},[t,r]),i.useEffect(()=>{if(!l.color_xy){const b=Qe(n.color_xy);f(g=>({...g,color_xy:b}))}},[l.color_xy,n.color_xy]),i.useEffect(()=>{if(!l.color_hs){const b=G(n.color_hs);f(g=>({...g,color_hs:b}))}},[l.color_hs,n.color_hs]),i.useEffect(()=>{if(!l.color_rgb){const b=Ye(n.color_rgb);f(g=>({...g,color_rgb:b}))}},[l.color_rgb,n.color_rgb]),i.useEffect(()=>{if(!l.hex){const b=Je(n.hex);f(g=>({...g,hex:b}))}},[l.hex,n.hex]);const h=i.useCallback(b=>{if(b.target.value){const g=Array.from(n.color_hs);g[1]=b.target.valueAsNumber;const C=G(g);f(E=>({...E,color_hs:C})),u(ce(C,"color_hs"))}},[n.color_hs]),m=i.useCallback(b=>{if(b.target.value){const g=Array.from(n.color_hs),C=g[1];g[1]=C===0?100:C,g[0]=b.target.valueAsNumber;const E=G(g);f(_=>({..._,color_hs:E})),u(ce(E,"color_hs"))}},[n.color_hs]),p=i.useCallback(b=>{const{value:g,name:C}=b.target;f(E=>({...E,[C]:g})),u(ce(g,C))},[]),x=i.useCallback(b=>{d(g=>({...g,[b.target.name]:!0}))},[]),y=i.useCallback(b=>{d(g=>({...g,[b.target.name]:!1})),a($e(n,r))},[n,r,a]),j=i.useCallback(()=>{a($e(n,r))},[n,r,a]),N=i.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:Gt,backgroundColor:N},onChange:h,onTouchEnd:j,onMouseUp:j})})}),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:j,onMouseUp:j})})}),!s&&o.jsxs("div",{className:"flex flex-row flex-wrap gap-2 justify-around",children:[o.jsx(V,{label:"hex",name:"hex",value:c.hex,onChange:p,onFocus:x,onBlur:y}),o.jsx(V,{label:"rgb",name:"color_rgb",value:c.color_rgb,onChange:p,onFocus:x,onBlur:y}),o.jsx(V,{label:"hsv",name:"color_hs",value:c.color_hs,onChange:p,onFocus:x,onBlur:y}),o.jsx(V,{label:"xyY",name:"color_xy",value:c.color_xy,onChange:p,onFocus:x,onBlur:y})]})]})}),Ht=i.memo(e=>{const{deviceValue:a,feature:{name:t,features:r,property:s},onChange:n,minimal:u}=e,c=i.useMemo(()=>{const l={};for(const d of r){const h=Number.parseFloat(a?.[d.name]);l[d.name]=Number.isNaN(h)?0:h}return l},[a,r]),f=i.useCallback(l=>n({[s??"color"]:l}),[s,n]);return o.jsx(Ke,{onChange:f,value:c,format:t,minimal:u})}),Lt={position:[0,25,50,75,100].map(e=>({value:e,name:`${e}`})),tilt:[0,25,50,75,100].map(e=>({value:e,name:`${e}`}))},Pt=i.memo(e=>o.jsx(R,{...e,steps:Lt}));function T(e){return typeof e!="object"}const Ze=i.memo(e=>{const{onChange:a,values:t,value:r,minimal:s}=e,{t:n}=w("common"),u=i.useCallback(c=>{const f=t.find(l=>T(l)?l===c.target.value:l.value===Number.parseInt(c.target.value,10));a(f)},[t,a]);return s?o.jsxs("select",{className:"select",onChange:u,value:T(r)?r:r?.value,children:[o.jsx("option",{value:"",disabled:!0,children:n("select_value")}),t.map(c=>o.jsx("option",{value:T(c)?c:c.value,children:T(c)?c:c.name},T(c)?c:c.name))]}):o.jsx("div",{className:"join join-vertical lg:join-horizontal",children:t.map(c=>o.jsx(S,{className:`btn btn-soft btn-sm join-item${(T(c)?c===r:c.value===(T(r)?r:r?.value))?" btn-active":""}`,onClick:f=>a(f),item:T(c)?c:c.value,title:T(c)?`${c}`:c.description,children:T(c)?o.jsx(U,{value:c,name:""}):c.name},T(c)?c:c.name))})}),zt=6,Wt=i.memo(e=>{const{onChange:a,feature:{access:t=v.SET,values:r,property:s},deviceValue:n,minimal:u}=e;return t&v.SET?o.jsx(Ze,{onChange:c=>a({[s]:c}),values:r,value:n||"",minimal:u||r.length>zt}):t&v.STATE?o.jsx(q,{...e}):o.jsx($,{...e})}),Dt=i.memo(e=>o.jsx(R,{...e})),Xt=i.memo(e=>{const{minimal:a,onChange:t,feature:{length_min:r,length_max:s,property:n},deviceValue:u}=e,{t:c}=w(["gradient","common"]),[f,l]=i.useState(r>0?Array(r).fill("#ffffff"):[]);i.useEffect(()=>{u&&Array.isArray(u)&&u.length>0&&l(u)},[u]);const d=i.useCallback((b,g)=>{const C=Array.from(f);C[b]=g,l(C)},[f]),h=i.useCallback(()=>{const b=Array.from(f);b.push("#ffffff"),l(b)},[f]),m=i.useCallback(b=>{const g=Array.from(f);g.splice(b,1),l(g)},[f]),p=i.useCallback(()=>t({[n??"gradient"]:f}),[f,n,t]),[x,y]=i.useState(!1),[j,N]=i.useState(!1);return i.useEffect(()=>{y(f.length<s),N(f.length>r)},[f,r,s]),o.jsxs("div",{className:"flex flex-col gap-2",children:[f.map((b,g)=>o.jsxs("div",{className:"flex flex-row flex-wrap gap-2 items-center",children:[o.jsx(Ke,{onChange:C=>{d(g,C.hex)},value:{hex:b},format:"hex",minimal:a}),j&&o.jsx(S,{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(S,{className:"btn btn-sm btn-success",onClick:h,children:"+"})}),o.jsx("div",{children:o.jsx(S,{className:`btn btn-primary ${a?"btn-sm":""}`,onClick:p,children:c("common:apply")})})]})}),Qt={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`}))},Yt=i.memo(e=>o.jsx(R,{...e,steps:Qt}));function Jt(e){return e.type==="composite"&&(e.name==="color_xy"||e.name==="color_hs")}const Kt=i.memo(e=>{const{t:a}=w("zigbee"),{children:t,feature:r,deviceValue:s,onRead:n,endpointSpecific:u}=e,c=r.unit,f=i.useMemo(()=>_t(r.name,s,c),[c,r.name,s]),l=i.useMemo(()=>r.property&&r.access&v.GET||Jt(r),[r]),d=e.parentFeatures?.[e.parentFeatures.length-1],h=r.name==="state"?r.property:r.name;let m=r.label||pt(mt(h));d?.label&&r.name==="state"&&d.type!=="light"&&d.type!=="switch"&&(m=`${d.label} ${r.label.charAt(0).toLowerCase()}${r.label.slice(1)}`);const p=i.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:f[0],fixedWidth:!0,className:f[1],...f[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}),l&&o.jsx(S,{item:r,onClick:p,className:"btn btn-xs btn-square btn-primary",children:o.jsx(ie,{icon:et})})]})}),Zt=i.memo(e=>{const{onChange:a,value:t,feature:r,parentFeatures:s}=e,[n,u]=i.useState(t);i.useEffect(()=>{u(t)},[t]);const c=i.useCallback(h=>{u(h),a(h)},[a]),f=i.useCallback((h,m)=>{const p=Array.from(n);typeof h=="object"&&(h={...n[m],...h}),p[m]=h,c(p)},[n,c]),l=i.useCallback(h=>{const m=Array.from(n);m.splice(h,1),c(m)},[n,c]),d=i.useCallback(()=>u([...n,{}]),[n]);return n.length===0?o.jsx("div",{className:"flex flex-row flex-wrap gap-2",children:o.jsx(S,{className:"btn btn-success col-1",onClick:d,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:p=>f(p,m),featureWrapperClass:Kt,parentFeatures:s}),o.jsxs("div",{className:"join join-vertical lg:join-horizontal",children:[o.jsx(S,{item:m,className:"btn btn-sm btn-error btn-square join-item",onClick:l,children:"-"}),n.length-1===m&&o.jsx(S,{className:"btn btn-sm btn-success btn-square join-item",onClick:d,children:"+"})]})]},m))}),ea=i.memo(e=>{const{t:a}=w(["list","common"]),{feature:t,minimal:r,parentFeatures:s,onChange:n,deviceValue:u}=e,[c,f]=i.useState(t.property?u?.[t.property]??[]:[]),l=i.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]),d=i.useCallback(x=>{if(f(x),!l){let y=x;if(t.item_type.type!=="composite"&&t.item_type.name){y=[];for(const j of x)y.push(j[t.item_type.name])}n(t.property?{[t.property]:y}:y)}},[t.property,t.item_type,n,l]),h=i.useCallback(()=>{let x=c;if(t.item_type.type!=="composite"&&t.item_type.name){x=[];for(const y of c)x.push(y[t.item_type.name])}n(t.property?{[t.property]:x}:x)},[t.property,t.item_type,n,c]),{access:m=v.SET,item_type:p}=t;return m&v.SET?o.jsxs(o.Fragment,{children:[o.jsx(Zt,{feature:p,parentFeatures:[...s,t],onChange:d,value:c}),l&&o.jsx("div",{children:o.jsx(S,{className:`btn btn-primary ${r?"btn-sm":""}`,onClick:h,disabled:c.length===0,children:a("common:apply")})})]}):m&v.STATE?o.jsx(q,{...e}):o.jsx($,{...e})}),ra=i.memo(e=>o.jsx(R,{...e})),ta=i.memo(e=>{const{onChange:a,value:t,min:r,max:s,unit:n,steps:u,minimal:c,...f}=e,[l,d]=i.useState(t),h=r!=null&&s!=null;i.useEffect(()=>{d(t)},[t]);const m=i.useCallback(x=>{d(x.target.value?x.target.valueAsNumber:"")},[]),p=i.useCallback(x=>!x.target.validationMessage&&a(l===""?null:l),[l,a]);return o.jsxs("div",{className:"flex flex-row flex-wrap gap-3 items-center",children:[!c&&u?o.jsx(Ze,{values:u,onChange:a,value:l}):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:l,onChange:m,onTouchEnd:p,onMouseUp:p,...f}),o.jsxs("div",{className:"flex justify-between px-1 mt-1 text-xs",children:[o.jsx("span",{children:r}),c&&o.jsx("span",{children:l}),o.jsx("span",{children:s})]})]}):null,(!c||!h)&&o.jsxs("label",{className:"input",children:[o.jsx("input",{type:"number",className:"grow validator",value:l,onChange:m,onBlur:p,min:r,max:s,...f}),n]})]})}),aa=i.memo(e=>{const{feature:{presets:a,access:t=v.SET,property:r,unit:s,value_max:n,value_min:u,value_step:c},deviceValue:f,steps:l,onChange:d,minimal:h}=e;return t&v.SET?o.jsx(ta,{onChange:m=>d({[r]:m}),value:f??"",min:u,max:n,step:c,steps:a?.length?a:l,unit:s,minimal:h}):t&v.STATE?o.jsx(q,{...e}):o.jsx($,{...e})}),na=i.memo(e=>o.jsx(R,{...e})),sa=i.memo(e=>{const{onChange:a,value:t,...r}=e,[s,n]=i.useState(t);return i.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=i.memo(e=>{const{feature:{access:a=v.SET,property:t},deviceValue:r,onChange:s}=e;return a&v.SET?o.jsx(sa,{onChange:n=>s({[t]:n}),value:r??""}):a&v.STATE?o.jsx(q,{...e}):o.jsx($,{...e})}),er=i.memo(e=>{const{feature:a,device:t,deviceState:r,steps:s,onRead:n,onChange:u,featureWrapperClass:c,minimal:f,endpointSpecific:l,parentFeatures:d}=e,h=i.useMemo(()=>a.property?r[a.property]:void 0,[a.property,r[a.property]]),m=i.useMemo(()=>He(a),[a]),p=i.useMemo(()=>({device:t,deviceValue:h,onChange:u,onRead:n,featureWrapperClass:c,minimal:f,endpointSpecific:l,parentFeatures:d}),[t,h,u,n,c,f,l,d]),x=i.useMemo(()=>({feature:a,onRead:n,deviceValue:h,parentFeatures:d,endpointSpecific:l}),[a,n,h,d,l]);switch(a.type){case"binary":return o.jsx(c,{...x,children:o.jsx(yt,{feature:a,...p},m)},m);case"numeric":return o.jsx(c,{...x,children:o.jsx(aa,{feature:a,...p,steps:s},m)},m);case"list":return a.name==="gradient"&&a.length_min!=null&&a.length_max!=null?o.jsx(c,{...x,children:o.jsx(Xt,{feature:a,...p},m)},m):o.jsx(c,{...x,children:o.jsx(ea,{feature:a,...p},m)},m);case"text":return o.jsx(c,{...x,children:o.jsx(oa,{feature:a,...p},m)},m);case"enum":return o.jsx(c,{...x,children:o.jsx(Wt,{feature:a,...p},m)},m);case"light":return o.jsx(Yt,{feature:a,...p,deviceState:r},m);case"switch":return o.jsx(na,{feature:a,...p,deviceState:r},m);case"cover":return o.jsx(Pt,{feature:a,...p,deviceState:r},m);case"lock":return o.jsx(ra,{feature:a,...p,deviceState:r},m);case"climate":return o.jsx(Ct,{feature:a,...p,deviceState:r},m);case"fan":return o.jsx(Dt,{feature:a,...p,deviceState:r},m);case"composite":{if(a.name==="color_xy"||a.name==="color_hs")return o.jsx(c,{...x,children:o.jsx(Ht,{feature:a,...p},m)},m);const y=d&&a.property?r[a.property]:r;return o.jsx(c,{...x,children:o.jsx(R,{feature:a,...p,deviceState:y},m)},m)}default:return console.error("Unsupported feature",a),o.jsx(c,{...x,children:o.jsx("pre",{children:JSON.stringify(a,null,4)})},m)}});export{er as F,Kt as a,v as b,_t as c,mt as d,He as g,pt as s};
|
|
1
|
+
import{ag as le,aW as rr,aX as tr,aY as ar,aZ as nr,l as sr,a_ as or,a$ as cr,b0 as ir,b1 as lr,b2 as ur,aO as ue,b3 as me,b4 as mr,b5 as fr,b6 as hr,b7 as pr,b8 as dr,b9 as xr,ba as fe,bb as br,bc as he,bd as gr,be as _r,bf as L,bg as pe,bh as de,a2 as yr,bi as Cr,bj as vr,bk as jr,bl as Sr,bm as Tr,bn as kr,bo as Er,bp as Nr,bq as Rr,br as Ar,bs as wr,bt as Fr,bu as qr,bv as $r,bw as Ir,bx as Br,by as Mr,bz as Vr,bA as Or,bB as F,aQ as Gr,bC as xe,bD as Ur,bE as Hr,bF as Lr,bG as Pr,bH as Be,bI as zr,bJ as Me,bK as Wr,bL as Dr,bM as Xr,bN as Qr,r as i,j as o,b as w,B as S,F as ie,bO as Yr,ax as Jr,bP as Kr,bQ as Zr,M as et}from"./index-B9KSRkAy.js";import{D as U}from"./DisplayValue-DKwqD83w.js";import{r as Ve,a as Oe,b as rt}from"./_createCompounder-Db7SjIIq.js";var P,be;function tt(){if(be)return P;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 P=e,P}var z,ge;function at(){if(ge)return z;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 z=a,z}var W,_e;function Ge(){if(_e)return W;_e=1;var e="\\ud800-\\udfff",a="\\u0300-\\u036f",t="\\ufe20-\\ufe2f",r="\\u20d0-\\u20ff",s=a+t+r,n="\\ufe0e\\ufe0f",u="\\u200d",c=RegExp("["+u+e+s+n+"]");function f(l){return c.test(l)}return W=f,W}var D,ye;function nt(){if(ye)return D;ye=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+"]",c="["+s+"]",f="\\ud83c[\\udffb-\\udfff]",l="(?:"+c+"|"+f+")",d="[^"+e+"]",h="(?:\\ud83c[\\udde6-\\uddff]){2}",m="[\\ud800-\\udbff][\\udc00-\\udfff]",p="\\u200d",x=l+"?",y="["+n+"]?",j="(?:"+p+"(?:"+[d,h,m].join("|")+")"+y+x+")*",N=y+x+j,b="(?:"+[d+c+"?",c,h,m,u].join("|")+")",g=RegExp(f+"(?="+f+")|"+b+N,"g");function C(E){return E.match(g)||[]}return X=C,X}var Q,ve;function ot(){if(ve)return Q;ve=1;var e=nt(),a=Ge(),t=st();function r(s){return a(s)?t(s):e(s)}return Q=r,Q}var Y,je;function ct(){if(je)return Y;je=1;var e=at(),a=Ge(),t=ot(),r=Ve();function s(n){return function(u){u=r(u);var c=a(u)?t(u):void 0,f=c?c[0]:u.charAt(0),l=c?e(c,1).join(""):u.slice(1);return f[n]()+l}}return Y=s,Y}var J,Se;function Ue(){if(Se)return J;Se=1;var e=ct(),a=e("toUpperCase");return J=a,J}var K,Te;function it(){if(Te)return K;Te=1;var e=Ve(),a=Ue();function t(r){return a(e(r).toLowerCase())}return K=t,K}var Z,ke;function lt(){if(ke)return Z;ke=1;var e=it(),a=Oe(),t=a(function(r,s,n){return s=s.toLowerCase(),r+(n?e(s):s)});return Z=t,Z}var ut=lt();const mt=le(ut);var ee,Ee;function ft(){if(Ee)return ee;Ee=1;var e=Oe(),a=Ue(),t=e(function(r,s,n){return r+(n?" ":"")+a(s)});return ee=t,ee}var ht=ft();const pt=le(ht),dt={battery_low:F,humidity:Or,illuminance:L,pressure:Vr,co2:Mr,voltage:Br,state:Ir,brightness:L,occupancy:$r,presence:qr,current:Fr,power:wr,energy:Ar,frequency:Rr,tamper:Nr,smoke:Er,radiation_dose_per_hour:kr,radioactive_events_per_minute:Tr,power_factor:Sr,mode:jr,sound:vr,position:Cr,alarm:yr,color_xy:de,color_hs:de,color_temp:pe,color_temp_startup:pe,illuminance_lux:L,soil_moisture:_r,water_leak:fe,week:gr,workdays_schedule:he,holidays_schedule:he,away_mode:br,vibration:fe,power_outage_count:xr,action:dr,angle_x:pr,angle_y:hr,angle_z:fr,side:mr,humidity_alarm:me,temperature_alarm:me,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=F;return e==null||(e>=85?(t=Be,a.push("text-success")):e>=65?t=zr:e>=40?t=Me:e>=20?t=Wr:(t=F,a.push("text-error"))),t},bt=(e,a)=>{let t=F;switch(e){case"high":{t=Be,a.push("text-success");break}case"medium":{t=Me;break}case"low":{t=F,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=Lr:e>=15?r=Pr:e<5&&(r=xe,t.push("text-info"))),r},_t=(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:Qr,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]:[Gr,"opacity-0",{}])},He=e=>`${e.type}-${e.name}-${e.label}-${e.property}-${e.access}-${e.category}-${e.endpoint}`;var v=(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))(v||{});const q=i.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})]})),$=i.memo(e=>o.jsxs("div",{className:"alert alert-warning",role:"alert",children:["Unknown access ",o.jsx("pre",{children:e.feature.access})]})),yt=i.memo(e=>{const{feature:{access:a=v.SET,name:t,property:r,value_off:s,value_on:n},deviceValue:u,onChange:c,minimal:f}=e,{t:l}=w("zigbee"),d=i.useCallback(m=>c({[r]:m}),[r,c]),h=i.useCallback(m=>c({[r]:m.target.checked?n:s}),[n,s,r,c]);if(a&v.SET){const m=u!=null,p=!f||f&&!m;return o.jsxs("div",{children:[p&&o.jsx(S,{className:"btn btn-link",item:s,onClick:d,children:o.jsx(U,{value:s,name:t})}),m?o.jsx("input",{className:"toggle",type:"checkbox",checked:u===n,onChange:h}):o.jsx(ie,{icon:Yr,title:l("unknown")}),p&&o.jsx(S,{className:"btn btn-link",item:n,onClick:d,children:o.jsx(U,{value:n,name:t})})]})}return a&v.STATE?o.jsx(q,{...e}):o.jsx($,{...e})}),R=i.memo(e=>{const{feature:a,onChange:t,parentFeatures:r,onRead:s,device:n,deviceState:u,featureWrapperClass:c,minimal:f,endpointSpecific:l,steps:d}=e,{type:h,property:m}=a,[p,x]=i.useState({}),{t:y}=w(["composite","common"]),j=i.useMemo(()=>Jr({},u,p),[u,p]),N="features"in a&&a.features||[],b=i.useMemo(()=>{if(h==="composite"&&r!==void 0){if(r.length===0)return!0;if(r.length===1){const _=r[0].type;return _!=null&&_!=="composite"&&_!=="list"}}return!1},[h,r]);i.useEffect(()=>{x({})},[n.ieee_address]);const g=i.useCallback(_=>{x({...p,..._}),b||t(h==="composite"&&m?{[m]:{...p,..._}}:_)},[p,h,m,b,t]),C=i.useCallback(()=>{const _={...u,...p};t(m?{[m]:_}:_)},[m,t,p,u]),E=i.useCallback(_=>{s?.(h==="composite"&&m?{[m]:_}:_)},[s,h,m]);return o.jsxs(o.Fragment,{children:[N.map(_=>o.jsx(er,{feature:_,parentFeatures:r??[],device:n,deviceState:j,onChange:g,onRead:E,featureWrapperClass:c,minimal:f,endpointSpecific:l,steps:d?.[_.name]},He(_))),b&&o.jsx("div",{className:"self-end float-right",children:o.jsx(S,{className:`btn btn-primary ${f?"btn-sm":""}`,onClick:C,children:y("common:apply")})})]})}),Ct=i.memo(e=>o.jsx(R,{...e}));var re,Ne;function vt(){if(Ne)return re;Ne=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,Re;function jt(){if(Re)return te;Re=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=Kr(),t=rt(),r=NaN,s=/^[-+]0x[0-9a-f]+$/i,n=/^0b[01]+$/i,u=/^0o[0-7]+$/i,c=parseInt;function f(l){if(typeof l=="number")return l;if(t(l))return r;if(a(l)){var d=typeof l.valueOf=="function"?l.valueOf():l;l=a(d)?d+"":d}if(typeof l!="string")return l===0?l:+l;l=e(l);var h=n.test(l);return h||u.test(l)?c(l.slice(2),h?2:8):s.test(l)?r:+l}return ne=f,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 k=le(Et),Nt=[.412453,.35758,.180423,.212671,.71516,.072169,.019334,.119193,.950227],Rt=[3.2404813432005266,-1.5371515162713183,-.49853632616888777,-.9692549499965684,1.8759900014898907,.041555926558292815,.05564663913517715,-.20404133836651123,1.0573110696453443],Le=.42,Pe=.0031308,ze=12.92,H=.055,O=e=>e<=Pe?ze*e:(1+H)*e**Le-H,At=1/Le,wt=O(Pe),Ft=1/ze,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,Nt)},qt=(e,a,t)=>{const r=We([e,a,t],Rt);return[O(r[0]),O(r[1]),O(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[c,f,l]=qe(1,1,1),d=c+f+l;return[c/d,f/d,0]}const[r,s,n]=qe(e,a,t),u=r+s+n;return[r/u,s/u,s]},$t=(e,a,t)=>{t===void 0&&(t=Xe(e,a));const[r,s,n]=De(e,a,t);return[k(r*255,0,255),k(s*255,0,255),k(n*255,0,255)]},B=(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,c=r*100;return[k(n,0,360),k(u,0,100),k(c,0,100)]},It=(e,a,t)=>{a/=100,t/=100;const r=~~(e/60),s=e/60-r,n=t*(1-a),u=t*(1-a*s),c=t*(1-a*(1-s)),f=r%6,l=[t,u,n,n,c,t][f]*255,d=[c,t,t,u,n,n][f]*255,h=[n,n,c,t,t,u][f]*255;return[k(l,0,255),k(d,0,255),k(h,0,255)]},M=(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))),A=(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]:$t(t,r,s);return{color_rgb:n,color_hs:B(...n),color_xy:[t,r,s],hex:M(...n)}}case"color_hs":{const{hue:t=0,saturation:r=0}=e,s=100,n=It(t,r,s);return{color_rgb:n,color_hs:[t,r,s],color_xy:I(...n),hex:M(...n)}}case"color_rgb":{const{r:t=255,g:r=255,b:s=255}=e;return{color_rgb:[t,r,s],color_hs:B(t,r,s),color_xy:I(t,r,s),hex:M(t,r,s)}}case"hex":{const t=e.hex,r=Bt(t);return{color_rgb:r,color_hs:B(...r),color_xy:I(...r),hex:t}}default:{const t=[255,255,255];return{color_rgb:t,color_hs:B(...t),color_xy:I(...t),hex:M(...t)}}}},$e=(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}}},Qe=e=>`${e[0].toFixed(3)}, ${e[1].toFixed(3)}, ${e[2].toFixed(3)}`,G=e=>`${e[0].toFixed(2)}°, ${e[1].toFixed(2)}%, ${e[2].toFixed(2)}%`,Ye=e=>`${e[0].toFixed(0)}, ${e[1].toFixed(0)}, ${e[2].toFixed(0)}`,Je=e=>e,Ie=e=>({color_xy:Qe(e.color_xy),color_hs:G(e.color_hs),color_rgb:Ye(e.color_rgb),hex:Je(e.hex)}),Mt=e=>{const a=e.match(/\d+(\.\d+)?/gu)??[];return Array.from({length:3}).map((t,r)=>+(a[r]??0))},Vt=e=>{const a=e.match(/\d+(\.\d+)?/gu)??[];return Array.from({length:3}).map((t,r)=>k(+(a[r]??0),0,r?100:360))},Ot=e=>{const a=e.match(/\d+(\.\d+)?/gu)??[];return Array.from({length:3}).map((t,r)=>k(+(a[r]??0),0,255))},ce=(e,a)=>{switch(a){case"color_xy":{const t=Mt(e);return A({x:t[0],y:t[1]},"color_xy")}case"color_hs":{const t=Vt(e);return A({hue:t[0],saturation:t[1]},"color_hs")}case"color_rgb":{const t=Ot(e);return A({r:t[0],g:t[1],b:t[2]},"color_rgb")}case"hex":return A({hex:e},"hex")}},Gt="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=i.memo(({label:e,...a})=>o.jsxs("label",{className:"input",children:[e,o.jsx("input",{type:"text",className:"grow",...a})]})),Ke=i.memo(e=>{const{onChange:a,value:t={},format:r,minimal:s}=e,[n,u]=i.useState(A(t,r)),[c,f]=i.useState(Ie(n)),[l,d]=i.useState({color_rgb:!1,color_hs:!1,color_xy:!1,hex:!1});i.useEffect(()=>{const b=A(t,r);u(b),f(Ie(b))},[t,r]),i.useEffect(()=>{if(!l.color_xy){const b=Qe(n.color_xy);f(g=>({...g,color_xy:b}))}},[l.color_xy,n.color_xy]),i.useEffect(()=>{if(!l.color_hs){const b=G(n.color_hs);f(g=>({...g,color_hs:b}))}},[l.color_hs,n.color_hs]),i.useEffect(()=>{if(!l.color_rgb){const b=Ye(n.color_rgb);f(g=>({...g,color_rgb:b}))}},[l.color_rgb,n.color_rgb]),i.useEffect(()=>{if(!l.hex){const b=Je(n.hex);f(g=>({...g,hex:b}))}},[l.hex,n.hex]);const h=i.useCallback(b=>{if(b.target.value){const g=Array.from(n.color_hs);g[1]=b.target.valueAsNumber;const C=G(g);f(E=>({...E,color_hs:C})),u(ce(C,"color_hs"))}},[n.color_hs]),m=i.useCallback(b=>{if(b.target.value){const g=Array.from(n.color_hs),C=g[1];g[1]=C===0?100:C,g[0]=b.target.valueAsNumber;const E=G(g);f(_=>({..._,color_hs:E})),u(ce(E,"color_hs"))}},[n.color_hs]),p=i.useCallback(b=>{const{value:g,name:C}=b.target;f(E=>({...E,[C]:g})),u(ce(g,C))},[]),x=i.useCallback(b=>{d(g=>({...g,[b.target.name]:!0}))},[]),y=i.useCallback(b=>{d(g=>({...g,[b.target.name]:!1})),a($e(n,r))},[n,r,a]),j=i.useCallback(()=>{a($e(n,r))},[n,r,a]),N=i.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:Gt,backgroundColor:N},onChange:h,onTouchEnd:j,onMouseUp:j})})}),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:j,onMouseUp:j})})}),!s&&o.jsxs("div",{className:"flex flex-row flex-wrap gap-2 justify-around",children:[o.jsx(V,{label:"hex",name:"hex",value:c.hex,onChange:p,onFocus:x,onBlur:y}),o.jsx(V,{label:"rgb",name:"color_rgb",value:c.color_rgb,onChange:p,onFocus:x,onBlur:y}),o.jsx(V,{label:"hsv",name:"color_hs",value:c.color_hs,onChange:p,onFocus:x,onBlur:y}),o.jsx(V,{label:"xyY",name:"color_xy",value:c.color_xy,onChange:p,onFocus:x,onBlur:y})]})]})}),Ht=i.memo(e=>{const{deviceValue:a,feature:{name:t,features:r,property:s},onChange:n,minimal:u}=e,c=i.useMemo(()=>{const l={};for(const d of r){const h=Number.parseFloat(a?.[d.name]);l[d.name]=Number.isNaN(h)?0:h}return l},[a,r]),f=i.useCallback(l=>n({[s??"color"]:l}),[s,n]);return o.jsx(Ke,{onChange:f,value:c,format:t,minimal:u})}),Lt={position:[0,25,50,75,100].map(e=>({value:e,name:`${e}`})),tilt:[0,25,50,75,100].map(e=>({value:e,name:`${e}`}))},Pt=i.memo(e=>o.jsx(R,{...e,steps:Lt}));function T(e){return typeof e!="object"}const Ze=i.memo(e=>{const{onChange:a,values:t,value:r,minimal:s}=e,{t:n}=w("common"),u=i.useCallback(c=>{const f=t.find(l=>T(l)?l===c.target.value:l.value===Number.parseInt(c.target.value,10));a(f)},[t,a]);return s?o.jsxs("select",{className:"select",onChange:u,value:T(r)?r:r?.value,children:[o.jsx("option",{value:"",disabled:!0,children:n("select_value")}),t.map(c=>o.jsx("option",{value:T(c)?c:c.value,children:T(c)?c:c.name},T(c)?c:c.name))]}):o.jsx("div",{className:"join join-vertical lg:join-horizontal",children:t.map(c=>o.jsx(S,{className:`btn btn-soft btn-sm join-item${(T(c)?c===r:c.value===(T(r)?r:r?.value))?" btn-active":""}`,onClick:f=>a(f),item:T(c)?c:c.value,title:T(c)?`${c}`:c.description,children:T(c)?o.jsx(U,{value:c,name:""}):c.name},T(c)?c:c.name))})}),zt=6,Wt=i.memo(e=>{const{onChange:a,feature:{access:t=v.SET,values:r,property:s},deviceValue:n,minimal:u}=e;return t&v.SET?o.jsx(Ze,{onChange:c=>a({[s]:c}),values:r,value:n||"",minimal:u||r.length>zt}):t&v.STATE?o.jsx(q,{...e}):o.jsx($,{...e})}),Dt=i.memo(e=>o.jsx(R,{...e})),Xt=i.memo(e=>{const{minimal:a,onChange:t,feature:{length_min:r,length_max:s,property:n},deviceValue:u}=e,{t:c}=w(["gradient","common"]),[f,l]=i.useState(r>0?Array(r).fill("#ffffff"):[]);i.useEffect(()=>{u&&Array.isArray(u)&&u.length>0&&l(u)},[u]);const d=i.useCallback((b,g)=>{const C=Array.from(f);C[b]=g,l(C)},[f]),h=i.useCallback(()=>{const b=Array.from(f);b.push("#ffffff"),l(b)},[f]),m=i.useCallback(b=>{const g=Array.from(f);g.splice(b,1),l(g)},[f]),p=i.useCallback(()=>t({[n??"gradient"]:f}),[f,n,t]),[x,y]=i.useState(!1),[j,N]=i.useState(!1);return i.useEffect(()=>{y(f.length<s),N(f.length>r)},[f,r,s]),o.jsxs("div",{className:"flex flex-col gap-2",children:[f.map((b,g)=>o.jsxs("div",{className:"flex flex-row flex-wrap gap-2 items-center",children:[o.jsx(Ke,{onChange:C=>{d(g,C.hex)},value:{hex:b},format:"hex",minimal:a}),j&&o.jsx(S,{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(S,{className:"btn btn-sm btn-success",onClick:h,children:"+"})}),o.jsx("div",{children:o.jsx(S,{className:`btn btn-primary ${a?"btn-sm":""}`,onClick:p,children:c("common:apply")})})]})}),Qt={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`}))},Yt=i.memo(e=>o.jsx(R,{...e,steps:Qt}));function Jt(e){return e.type==="composite"&&(e.name==="color_xy"||e.name==="color_hs")}const Kt=i.memo(e=>{const{t:a}=w("zigbee"),{children:t,feature:r,deviceValue:s,onRead:n,endpointSpecific:u}=e,c=r.unit,f=i.useMemo(()=>_t(r.name,s,c),[c,r.name,s]),l=i.useMemo(()=>r.property&&r.access&v.GET||Jt(r),[r]),d=e.parentFeatures?.[e.parentFeatures.length-1],h=r.name==="state"?r.property:r.name;let m=r.label||pt(mt(h));d?.label&&r.name==="state"&&d.type!=="light"&&d.type!=="switch"&&(m=`${d.label} ${r.label.charAt(0).toLowerCase()}${r.label.slice(1)}`);const p=i.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:f[0],fixedWidth:!0,className:f[1],...f[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}),l&&o.jsx(S,{item:r,onClick:p,className:"btn btn-xs btn-square btn-primary",children:o.jsx(ie,{icon:et})})]})}),Zt=i.memo(e=>{const{onChange:a,value:t,feature:r,parentFeatures:s}=e,[n,u]=i.useState(t);i.useEffect(()=>{u(t)},[t]);const c=i.useCallback(h=>{u(h),a(h)},[a]),f=i.useCallback((h,m)=>{const p=Array.from(n);typeof h=="object"&&(h={...n[m],...h}),p[m]=h,c(p)},[n,c]),l=i.useCallback(h=>{const m=Array.from(n);m.splice(h,1),c(m)},[n,c]),d=i.useCallback(()=>u([...n,{}]),[n]);return n.length===0?o.jsx("div",{className:"flex flex-row flex-wrap gap-2",children:o.jsx(S,{className:"btn btn-success col-1",onClick:d,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:p=>f(p,m),featureWrapperClass:Kt,parentFeatures:s}),o.jsxs("div",{className:"join join-vertical lg:join-horizontal",children:[o.jsx(S,{item:m,className:"btn btn-sm btn-error btn-square join-item",onClick:l,children:"-"}),n.length-1===m&&o.jsx(S,{className:"btn btn-sm btn-success btn-square join-item",onClick:d,children:"+"})]})]},m))}),ea=i.memo(e=>{const{t:a}=w(["list","common"]),{feature:t,minimal:r,parentFeatures:s,onChange:n,deviceValue:u}=e,[c,f]=i.useState(t.property?u?.[t.property]??[]:[]),l=i.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]),d=i.useCallback(x=>{if(f(x),!l){let y=x;if(t.item_type.type!=="composite"&&t.item_type.name){y=[];for(const j of x)y.push(j[t.item_type.name])}n(t.property?{[t.property]:y}:y)}},[t.property,t.item_type,n,l]),h=i.useCallback(()=>{let x=c;if(t.item_type.type!=="composite"&&t.item_type.name){x=[];for(const y of c)x.push(y[t.item_type.name])}n(t.property?{[t.property]:x}:x)},[t.property,t.item_type,n,c]),{access:m=v.SET,item_type:p}=t;return m&v.SET?o.jsxs(o.Fragment,{children:[o.jsx(Zt,{feature:p,parentFeatures:[...s,t],onChange:d,value:c}),l&&o.jsx("div",{children:o.jsx(S,{className:`btn btn-primary ${r?"btn-sm":""}`,onClick:h,disabled:c.length===0,children:a("common:apply")})})]}):m&v.STATE?o.jsx(q,{...e}):o.jsx($,{...e})}),ra=i.memo(e=>o.jsx(R,{...e})),ta=i.memo(e=>{const{onChange:a,value:t,min:r,max:s,unit:n,steps:u,minimal:c,...f}=e,[l,d]=i.useState(t),h=r!=null&&s!=null;i.useEffect(()=>{d(t)},[t]);const m=i.useCallback(x=>{d(x.target.value?x.target.valueAsNumber:"")},[]),p=i.useCallback(x=>!x.target.validationMessage&&a(l===""?null:l),[l,a]);return o.jsxs("div",{className:"flex flex-row flex-wrap gap-3 items-center",children:[!c&&u?o.jsx(Ze,{values:u,onChange:a,value:l}):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:l,onChange:m,onTouchEnd:p,onMouseUp:p,...f}),o.jsxs("div",{className:"flex justify-between px-1 mt-1 text-xs",children:[o.jsx("span",{children:r}),c&&o.jsx("span",{children:l}),o.jsx("span",{children:s})]})]}):null,(!c||!h)&&o.jsxs("label",{className:"input",children:[o.jsx("input",{type:"number",className:"grow validator",value:l,onChange:m,onBlur:p,min:r,max:s,...f}),n]})]})}),aa=i.memo(e=>{const{feature:{presets:a,access:t=v.SET,property:r,unit:s,value_max:n,value_min:u,value_step:c},deviceValue:f,steps:l,onChange:d,minimal:h}=e;return t&v.SET?o.jsx(ta,{onChange:m=>d({[r]:m}),value:f??"",min:u,max:n,step:c,steps:a?.length?a:l,unit:s,minimal:h}):t&v.STATE?o.jsx(q,{...e}):o.jsx($,{...e})}),na=i.memo(e=>o.jsx(R,{...e})),sa=i.memo(e=>{const{onChange:a,value:t,...r}=e,[s,n]=i.useState(t);return i.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=i.memo(e=>{const{feature:{access:a=v.SET,property:t},deviceValue:r,onChange:s}=e;return a&v.SET?o.jsx(sa,{onChange:n=>s({[t]:n}),value:r??""}):a&v.STATE?o.jsx(q,{...e}):o.jsx($,{...e})}),er=i.memo(e=>{const{feature:a,device:t,deviceState:r,steps:s,onRead:n,onChange:u,featureWrapperClass:c,minimal:f,endpointSpecific:l,parentFeatures:d}=e,h=i.useMemo(()=>a.property?r[a.property]:void 0,[a.property,r[a.property]]),m=i.useMemo(()=>He(a),[a]),p=i.useMemo(()=>({device:t,deviceValue:h,onChange:u,onRead:n,featureWrapperClass:c,minimal:f,endpointSpecific:l,parentFeatures:d}),[t,h,u,n,c,f,l,d]),x=i.useMemo(()=>({feature:a,onRead:n,deviceValue:h,parentFeatures:d,endpointSpecific:l}),[a,n,h,d,l]);switch(a.type){case"binary":return o.jsx(c,{...x,children:o.jsx(yt,{feature:a,...p},m)},m);case"numeric":return o.jsx(c,{...x,children:o.jsx(aa,{feature:a,...p,steps:s},m)},m);case"list":return a.name==="gradient"&&a.length_min!=null&&a.length_max!=null?o.jsx(c,{...x,children:o.jsx(Xt,{feature:a,...p},m)},m):o.jsx(c,{...x,children:o.jsx(ea,{feature:a,...p},m)},m);case"text":return o.jsx(c,{...x,children:o.jsx(oa,{feature:a,...p},m)},m);case"enum":return o.jsx(c,{...x,children:o.jsx(Wt,{feature:a,...p},m)},m);case"light":return o.jsx(Yt,{feature:a,...p,deviceState:r},m);case"switch":return o.jsx(na,{feature:a,...p,deviceState:r},m);case"cover":return o.jsx(Pt,{feature:a,...p,deviceState:r},m);case"lock":return o.jsx(ra,{feature:a,...p,deviceState:r},m);case"climate":return o.jsx(Ct,{feature:a,...p,deviceState:r},m);case"fan":return o.jsx(Dt,{feature:a,...p,deviceState:r},m);case"composite":{if(a.name==="color_xy"||a.name==="color_hs")return o.jsx(c,{...x,children:o.jsx(Ht,{feature:a,...p},m)},m);const y=d&&a.property?r[a.property]:r;return o.jsx(c,{...x,children:o.jsx(R,{feature:a,...p,deviceState:y},m)},m)}default:return console.error("Unsupported feature",a),o.jsx(c,{...x,children:o.jsx("pre",{children:JSON.stringify(a,null,4)})},m)}});export{er as F,Kt as a,v as b,_t as c,mt as d,He as g,pt as s};
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{b as F,r as o,s as t,H as v,w as g,cb as h,cc as f,G as E,aR as b,aS as w,aT as N,aU as k,cd as H,ce as B,D as W,v as q,c5 as U,c6 as G,cf as V,cg as J,j as e,S as j}from"./index-
|
|
1
|
+
import{b as F,r as o,s as t,H as v,w as g,cb as h,cc as f,G as E,aR as b,aS as w,aT as N,aU as k,cd as H,ce as B,D as W,v as q,c5 as U,c6 as G,cf as V,cg as J,j as e,S as j}from"./index-B9KSRkAy.js";import{C as X}from"./CheckboxField-DnsgrtmM.js";import{I as T}from"./InputField-D8fYIAZ2.js";import{N as S}from"./NumberField-iJErwbzA.js";import{S as r}from"./SelectField-CwoktH0d.js";import"./envs-DFlyG_dH.js";function ae(){const{t:s}=F(["settings","navbar","network","common"]),[l,y]=o.useState(t.get(v,"devices")),[i,C]=o.useState(t.get(g,!1)),[c,D]=o.useState(t.get(h,254)),[d,A]=o.useState(t.get(f,4)),[m,M]=o.useState(t.get(E,"data")),[u,L]=o.useState(t.get(b,"forceDirected2d")),[_,K]=o.useState(t.get(w,"all")),[p,O]=o.useState(t.get(N,-750)),[x,Y]=o.useState(t.get(k,50));o.useEffect(()=>{t.set(v,l)},[l]),o.useEffect(()=>{t.set(g,i)},[i]),o.useEffect(()=>{t.set(h,c)},[c]),o.useEffect(()=>{t.set(f,d)},[d]),o.useEffect(()=>{t.set(E,m)},[m]),o.useEffect(()=>{t.set(b,u)},[u]),o.useEffect(()=>{t.set(w,_)},[_]),o.useEffect(()=>{t.set(N,p)},[p]),o.useEffect(()=>{t.set(k,x)},[x]);const I=o.useCallback(()=>{const a=t.keys();t.remove(H),t.remove(v),t.remove(g),t.remove(h),t.remove(f),t.remove(E),t.remove(b),t.remove(w),t.remove(N),t.remove(k),t.remove(B),t.remove(W),t.remove(q);for(const n of a)(n.startsWith(U)||n.startsWith(G))&&t.remove(n);window.location.reload()},[]),R=o.useCallback(()=>{t.remove(V),t.remove(J),window.location.reload()},[]),P=o.useCallback(()=>{t.clearAll(),window.location.reload()},[]);return e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"alert alert-info alert-vertical sm:alert-horizontal",children:[s("frontend_notice"),e.jsxs("div",{className:"flex flex-row flex-wrap gap-2",children:[e.jsx(j,{className:"btn btn-sm btn-error",onClick:I,title:s("reset_settings"),modalDescription:s("common:dialog_confirmation_prompt"),modalCancelLabel:s("common:cancel"),children:s("reset_settings")}),e.jsx(j,{className:"btn btn-sm btn-error",onClick:R,title:s("reset_auth"),modalDescription:s("common:dialog_confirmation_prompt"),modalCancelLabel:s("common:cancel"),children:s("reset_auth")}),e.jsx(j,{className:"btn btn-sm btn-error",onClick:P,title:s("reset_all"),modalDescription:s("common:dialog_confirmation_prompt"),modalCancelLabel:s("common:cancel"),children:s("reset_all")})]})]}),e.jsxs("div",{className:"flex flex-row flex-wrap gap-4 mt-3",children:[e.jsxs(r,{name:"homepage",label:s("homepage"),onChange:a=>!a.target.validationMessage&&y(a.target.value),value:l,required:!0,children:[e.jsx("option",{value:"devices",children:s("navbar:devices")}),e.jsx("option",{value:"dashboard",children:s("navbar:dashboard")})]}),e.jsx(X,{name:"dashboard_column_display",label:s("dashboard_column_display"),checked:i,onChange:a=>C(a.target.checked)}),e.jsx(T,{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&&D(a.target.valueAsNumber)}),e.jsx(T,{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&&A(a.target.valueAsNumber)})]}),e.jsx("h2",{className:"text-lg mt-2",children:s("network_raw")}),e.jsx("div",{className:"flex flex-row flex-wrap gap-4",children:e.jsxs(r,{name:"network:display_type",label:s("network:display_type"),onChange:a=>!a.target.validationMessage&&M(a.target.value),value:m,required:!0,children:[e.jsx("option",{value:"data",children:s("network:data")}),e.jsx("option",{value:"map",children:s("network:map")})]})}),e.jsx("h2",{className:"text-lg mt-2",children:s("network_map")}),e.jsxs("div",{className:"flex flex-row flex-wrap gap-4",children:[e.jsxs(r,{name:"network:layout_type",label:s("network:layout_type"),onChange:a=>!a.target.validationMessage&&L(a.target.value),value:u,required:!0,children:[e.jsx("option",{value:"forceDirected2d",children:"forceDirected2d"}),e.jsx("option",{value:"forceDirected3d",children:"forceDirected3d"}),e.jsx("option",{value:"radialOut2d",children:"radialOut2d"}),e.jsx("option",{value:"radialOut3d",children:"radialOut3d"}),e.jsx("option",{value:"concentric2d",children:"concentric2d"})]}),e.jsxs(r,{name:"network:label_type",label:s("network:label_type"),onChange:a=>!a.target.validationMessage&&K(a.target.value),value:_,required:!0,children:[e.jsx("option",{value:"all",children:"all"}),e.jsx("option",{value:"auto",children:"auto"}),e.jsx("option",{value:"none",children:"none"}),e.jsx("option",{value:"nodes",children:"nodes"}),e.jsx("option",{value:"edges",children:"edges"})]}),e.jsx("div",{className:"min-w-xs",children:e.jsx(S,{name:"network:node_strength",label:s("network:node_strength"),onSubmit:(a,n)=>n&&a!==""&&O(a),min:-1e3,max:-100,step:10,defaultValue:p})}),e.jsx("div",{className:"min-w-xs",children:e.jsx(S,{name:"network:link_distance",label:s("network:link_distance"),onSubmit:(a,n)=>n&&a!==""&&Y(a),min:10,max:200,step:5,defaultValue:x})})]})]})}export{ae 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 as n,b as g,j as e,L as f,P as j,F as m,f as v,u as b,d as h,a as _,N as p,o as N,k as w,_ as x}from"./index-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./Devices-CpkAlK0U.js","./index-B9KSRkAy.js","./envs-DFlyG_dH.js","./index-DGcjwAm-.css","./RecallRemove-ByrNeUbK.js","./DashboardFeatureWrapper-BV-EJkYu.js","./Feature-DRiBEd30.js","./DisplayValue-DKwqD83w.js","./_createCompounder-Db7SjIIq.js","./InputField-D8fYIAZ2.js","./SelectField-CwoktH0d.js","./DevicePicker-BPQGOPp-.js","./EndpointPicker-wR5nrVyy.js","./DeviceCard-BibgHF2R.js","./LastSeen-kmLjgf_4.js","./format-CsVfcRLB.js","./Lqi-BZ7lW9bx.js","./PowerSource-DgbKMgpx.js","./snakeCase-BsE9z82R.js","./DeviceImage-XiUg0NFS.js","./index-DajxErfA.js","./GroupSettings-CFgdJ-vx.js","./SettingsList-C3vSq4jP.js","./CheckboxField-DnsgrtmM.js","./NumberField-iJErwbzA.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{r as n,b as g,j as e,L as f,P as j,F as m,f as v,u as b,d as h,a as _,N as p,o as N,k as w,_ as x}from"./index-B9KSRkAy.js";import"./envs-DFlyG_dH.js";const y=n.memo(u=>{const{groups:r,currentGroup:t,tab:o="devices"}=u,[c,l]=n.useState(""),{t:s}=g("common"),d=n.useMemo(()=>r.filter(a=>a.friendly_name.toLowerCase().includes(c.toLowerCase())&&a.id!==t?.id).map(a=>e.jsx("li",{children:e.jsx(f,{to:`/group/${a.id}/${o}`,onClick:()=>l(""),className:"dropdown-item",children:a.friendly_name})},a.id)),[r,c,t,o]);return e.jsxs(j,{name:"header-group-selector",buttonChildren:`${t?`#${t.id} - ${t.friendly_name}`:s("unknown_group")}`,dropdownStyle:"dropdown-start",children:[e.jsxs("label",{className:"input",children:[e.jsx(m,{icon:v}),e.jsx("input",{type:"search",placeholder:s("type_to_filter"),onChange:a=>l(a.target.value),value:c})]},"search"),d]})}),T=n.lazy(async()=>await x(()=>import("./Devices-CpkAlK0U.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)),$=n.lazy(async()=>await x(()=>import("./GroupSettings-CFgdJ-vx.js"),__vite__mapDeps([21,1,2,3,22,23,9,24,10]),import.meta.url));function G(){const u=b(),{t:r}=g(["groups","common"]),{groupId:t,tab:o}=h(),c=_(i=>i.groups),l=Number.parseInt(t,10),s=t?c.find(i=>i.id===l):void 0;n.useEffect(()=>{!o&&s&&u(`/group/${s.id}/devices`,{replace:!0})},[o,s,u]);const d=({isActive:i})=>i?"tab tab-active":"tab",a=n.useMemo(()=>{if(!s)return e.jsx("div",{className:"flex-auto justify-center items-center",children:r("common:unknown_group")});switch(o){case"devices":return e.jsx(T,{group:s});case"settings":return e.jsx($,{group:s})}},[o,s,r]);return e.jsxs(e.Fragment,{children:[e.jsx(y,{groups:c,currentGroup:s,tab:o}),e.jsxs("div",{className:"tabs tabs-border mt-2",children:[e.jsxs(p,{to:`/group/${t}/devices`,className:d,children:[e.jsx(m,{icon:N,className:"me-2"}),r("common:devices")]}),e.jsxs(p,{to:`/group/${t}/settings`,className:d,children:[e.jsx(m,{icon:w,className:"me-2"}),r("settings")]})]}),e.jsx("div",{className:"tab-content block h-full bg-base-100 p-3",children:a})]})}export{G as default};
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{b as c,a as l,r as i,W as m,j as e,F as p,K as d,bT as f}from"./index-
|
|
1
|
+
import{b as c,a as l,r as i,W as m,j as e,F as p,K as d,bT as f}from"./index-B9KSRkAy.js";import{S as g}from"./SettingsList-C3vSq4jP.js";import"./envs-DFlyG_dH.js";import"./CheckboxField-DnsgrtmM.js";import"./InputField-D8fYIAZ2.js";import"./NumberField-iJErwbzA.js";import"./SelectField-CwoktH0d.js";function k({group:s}){const{t:n}=c(["settings","common"]),o=l(t=>t.bridgeInfo),{sendMessage:r}=i.useContext(m),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{k as default};
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as t,b as _,j as e,a as w,W as C,ai as N,B as k,L as y,S as G,F as S,y as M}from"./index-
|
|
1
|
+
import{r as t,b as _,j as e,a as w,W as C,ai as N,B as k,L as y,S as G,F as S,y as M}from"./index-B9KSRkAy.js";import{E}from"./EndpointPicker-wR5nrVyy.js";import{S as I}from"./SelectField-CwoktH0d.js";import"./envs-DFlyG_dH.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{x as b,O as _,b as h,r,j as a,Q as N,B as m,a as w,W as C,L as f,F as g,R as k,S as F,y as S}from"./index-
|
|
1
|
+
import{x as b,O as _,b as h,r,j as a,Q as N,B as m,a as w,W as C,L as f,F as g,R as k,S as F,y as S}from"./index-B9KSRkAy.js";import{I as u}from"./InputField-D8fYIAZ2.js";import{T as G}from"./Table-D8Gdn1uG.js";import"./envs-DFlyG_dH.js";import"./DebouncedInput-BbusN73N.js";const R=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(R,{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,K as o,a9 as x,c3 as u,c4 as g}from"./index-
|
|
1
|
+
import{b as p,a as d,r as m,j as e,L as N,F as l,K as o,a9 as x,c3 as u,c4 as g}from"./index-B9KSRkAy.js";import{D as f}from"./DeviceImage-XiUg0NFS.js";import{T as b}from"./Table-D8Gdn1uG.js";import{f as w}from"./format-CsVfcRLB.js";import"./envs-DFlyG_dH.js";import"./index-DajxErfA.js";import"./DebouncedInput-BbusN73N.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-B9KSRkAy.js";import"./envs-DFlyG_dH.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-B9KSRkAy.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-B9KSRkAy.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,a9 as c}from"./index-
|
|
1
|
+
import{r,b as o,c as m,j as t,a9 as c}from"./index-B9KSRkAy.js";import{f as i}from"./format-CsVfcRLB.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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as l,W as w,E as y,a as r,b as N,a4 as S,j as s,a5 as x,F as u,f as E,B as f,z as k,a6 as I,a7 as M,a8 as A,a9 as F}from"./index-
|
|
1
|
+
import{r as l,W as w,E as y,a as r,b as N,a4 as S,j as s,a5 as x,F as u,f as E,B as f,z as k,a6 as I,a7 as M,a8 as A,a9 as F}from"./index-B9KSRkAy.js";import{C as G}from"./CheckboxField-DnsgrtmM.js";import{D}from"./DebouncedInput-BbusN73N.js";import{S as g}from"./SelectField-CwoktH0d.js";import"./envs-DFlyG_dH.js";const O={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 B(){const{sendMessage:m}=l.useContext(w),[t,d]=l.useState(""),[n,j]=l.useState("all"),[i,L]=l.useState(!1),h=y(),b=r(e=>e.logsLimit),v=r(e=>e.bridgeInfo.config.advanced.log_level),{t:a}=N("logs"),c=r(e=>e.logs),p=l.useMemo(()=>c.filter(e=>(n==="all"||e.level===n)&&(i||!t||e.message.toLowerCase().includes(t.toLowerCase()))),[t,i,n,c]),_=l.useCallback((e,o)=>t&&e.toLowerCase().includes(t.toLowerCase())?O[o]:S[o],[t]),C=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:n,onChange:e=>j(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:E}),s.jsx(D,{className:"",type:"search",onChange:e=>d(e.toString()),placeholder:a("common:search"),value:t})]}),s.jsx(f,{item:"",onClick:d,className:"btn btn-square join-item",title:a("common:clear"),children:s.jsx(u,{icon:k})})]})]}),s.jsx(G,{name:"highlight_only",label:a("highlight_only"),checked:i,onChange:e=>L(e.target.checked)}),s.jsx(g,{name:"log_limit",label:a("logs_limit"),onChange:e=>{h(M(Number.parseInt(e.target.value)))},value:b,children:I.map(e=>s.jsx("option",{value:e,children:e},e))}),s.jsx(f,{onClick:()=>{h(A())},className:"btn btn-primary self-center",disabled:c.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:v,onChange:e=>!e.target.validationMessage&&C(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:p.length>0?p.map((e,o)=>s.jsx("pre",{"data-prefix":o,className:_(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:["[",F(new Date),"] ",a("empty_logs_message")]})})})]})}export{B as default};
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r,j as t,F as i,a_ as a}from"./index-
|
|
1
|
+
import{r,j as t,F as i,a_ as a}from"./index-B9KSRkAy.js";import{D as n}from"./DisplayValue-DKwqD83w.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
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./RawNetworkData-
|
|
2
|
-
import{E as C,r as s,W as E,b as M,a as m,s as d,G as h,I as R,J as T,j as e,F as n,K as x,B as z,M as I,i as S,_ as g}from"./index-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./RawNetworkData-CxfFhrfx.js","./index-B9KSRkAy.js","./envs-DFlyG_dH.js","./index-DGcjwAm-.css","./DeviceImage-XiUg0NFS.js","./index-DajxErfA.js","./DebouncedInput-BbusN73N.js","./PowerSource-DgbKMgpx.js","./snakeCase-BsE9z82R.js","./_createCompounder-Db7SjIIq.js","./index-Bs7zcW7e.js","./Lqi-BZ7lW9bx.js","./DisplayValue-DKwqD83w.js","./RawNetworkMap-CSbVvyka.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{E as C,r as s,W as E,b as M,a as m,s as d,G as h,I as R,J as T,j as e,F as n,K as x,B as z,M as I,i as S,_ as g}from"./index-B9KSRkAy.js";import{C as A}from"./CheckboxField-DnsgrtmM.js";import{S as f}from"./SelectField-CwoktH0d.js";import"./envs-DFlyG_dH.js";const D=s.lazy(async()=>await g(()=>import("./RawNetworkData-CxfFhrfx.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12]),import.meta.url)),F=s.lazy(async()=>await g(()=>import("./RawNetworkMap-CSbVvyka.js"),__vite__mapDeps([13,1,2,3,10]),import.meta.url));function q(){const o=C(),{sendMessage:u}=s.useContext(E),{t:a}=M(["network","common"]),i=m(t=>t.networkMapIsLoading),r=m(t=>t.networkMap),[l,w]=s.useState("raw"),[c,j]=s.useState(!1),[p,k]=s.useState(d.get(h,"data")),v=s.useCallback(t=>{t.target.value&&w(t.target.value)},[]),y=s.useCallback(t=>{t.target.value&&(d.set(h,t.target.value),k(t.target.value))},[]),b=s.useCallback(t=>{j(t.target.checked)},[]),_=s.useCallback(async()=>{o(R(void 0)),o(T()),await u("bridge/request/networkmap",{type:l,routes:c})},[l,c,o,u]),N=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:a("loading")})]});if(r)switch(r.type){case"raw":return p==="data"?e.jsx(D,{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(n,{icon:x,size:"2xl"}),a("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(n,{icon:x,size:"2xl"}),a("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,a]);return e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"flex flex-row justify-center gap-3 mb-2",children:[e.jsxs(f,{name:"type",label:a("type"),value:l,onChange:v,children:[e.jsx("option",{value:"raw",children:a("raw")}),e.jsx("option",{value:"graphviz",children:a("graphviz")}),e.jsx("option",{value:"plantuml",children:a("plantuml")})]}),e.jsx(A,{name:"enable_routes",label:a("enable_routes"),checked:c,onChange:b}),e.jsx(z,{className:"btn btn-primary btn-square self-center ms-3 me-6",onClick:_,title:a(r?"reload":"load"),disabled:i,children:r?e.jsx(n,{icon:I}):e.jsx(n,{icon:S})}),l==="raw"&&e.jsxs(f,{name:"display_type",label:a("display_type"),value:p,onChange:y,children:[e.jsx("option",{value:"data",children:a("data")}),e.jsx("option",{value:"map",children:a("map")})]})]}),N]})}export{q 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-B9KSRkAy.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,T as F,S as h,U as g,V as q,X as M,a as L,W as z,L as A,Y as O}from"./index-
|
|
1
|
+
import{r as o,b as f,j as s,B as S,F as u,T as F,S as h,U as g,V as q,X as M,a as L,W as z,L as A,Y as O}from"./index-B9KSRkAy.js";import{D as U}from"./DeviceImage-XiUg0NFS.js";import{C as P}from"./CheckboxField-DnsgrtmM.js";import{T as B}from"./Table-D8Gdn1uG.js";import{M as R,V as T}from"./VendorLink-KoryP9lw.js";import{P as E}from"./PowerSource-DgbKMgpx.js";import"./envs-DFlyG_dH.js";import"./index-DajxErfA.js";import"./DebouncedInput-BbusN73N.js";import"./snakeCase-BsE9z82R.js";import"./_createCompounder-Db7SjIIq.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,bR as g,bO as B,bS as E,br as P,bH as f,bI as k,bJ as w,bK as v,bB as m}from"./index-
|
|
1
|
+
import{r as d,b as j,j as t,F as o,bR as g,bO as B,bS as E,br as P,bH as f,bI as k,bJ as w,bK as v,bB as m}from"./index-B9KSRkAy.js";import{s as y}from"./snakeCase-BsE9z82R.js";const C=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=v:(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:E,title:l(y(s)),...i});default:return u?.type==="GreenPower"?t.jsx(o,{icon:g,title:"Green",...i}):t.jsx(o,{icon:B,title:s?l(y(s)):void 0,...i})}});export{C as P};
|
|
Binary file
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{af as or,r as ee,b as Ni,j as w,t as pt,F as Ge,ay as pp,L as Wi,a as dp,a2 as vp,f as xp,B as _s,z as ps,az as wp}from"./index-
|
|
1
|
+
import{af as or,r as ee,b as Ni,j as w,t as pt,F as Ge,ay as pp,L as Wi,a as dp,a2 as vp,f as xp,B as _s,z as ps,az as wp}from"./index-B9KSRkAy.js";import{D as xs}from"./DeviceImage-XiUg0NFS.js";import{D as ds}from"./DebouncedInput-BbusN73N.js";import{P as Ap}from"./PowerSource-DgbKMgpx.js";import{Z as gt}from"./index-Bs7zcW7e.js";import{L as mp}from"./Lqi-BZ7lW9bx.js";import"./envs-DFlyG_dH.js";import"./index-DajxErfA.js";import"./snakeCase-BsE9z82R.js";import"./_createCompounder-Db7SjIIq.js";import"./DisplayValue-DKwqD83w.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
|