zigbee2mqtt-windfront
Version:
[](https://npmjs.org/package/zigbee2mqtt-windfront) [](https://github.com/Nerivec/zigbee2mqtt-windf
2 lines (1 loc) • 7.69 kB
JavaScript
import{a as c,b as N,r as n,A as S,c as m,j as i,d as k,t as y,S as q,F as z,f as C,L as w,g as f,N as V,M as D}from"./index-Cg_dwqpD.js";import{A as $,D as A}from"./Availability-DZ-ZY3Ib.js";import{D as I}from"./DeviceImage-CHwoOcls.js";import{T as L}from"./Table-FUtHXzGb.js";import{u as M,T}from"./useTable-B3JMT6Iq.js";import{L as E}from"./LastSeen-F90Gw0JI.js";import{L as O}from"./Lqi-OUPQk-S2.js";import{M as R,V as B}from"./VendorLink-D2p34CmW.js";import"./envs-CSqIi4cL.js";import"./RemoveDeviceModal-7DiwN3ck.js";import"./CheckboxField-D0wHGmUZ.js";import"./InputField-D9KJc30P.js";import"./index-BbB5QEu8.js";import"./DebouncedInput-E4d1IUlA.js";import"./format-BHlbVbae.js";import"./index-BwjSpuUu.js";import"./DisplayValue-DcXMP9Gf.js";function le(){const b=c(e=>e.devices),u=c(e=>e.deviceStates),l=c(e=>e.bridgeInfo),g=c(e=>e.availability),{t}=N(["zigbee","common","availability"]),F=n.useMemo(()=>{const e=[];for(let a=0;a<S.length;a++)for(const s of b[a])if(s.type!=="Coordinator"){const r=u[a][s.friendly_name]??{},d=l[a].config.devices[s.ieee_address]?.availability;let o;s.power_source==="Battery"&&(o=!1,"battery"in r?r.battery<20&&(o=!0):"battery_state"in r?r.battery_state==="low"&&(o=!0):"battery_low"in r&&(o=!!r.battery_low)),e.push({sourceIdx:a,device:s,state:r,availabilityState:g[a][s.friendly_name]?.state??"offline",availabilityEnabledForDevice:d!=null?!!d:void 0,batteryLow:o})}return e},[b,u,l,g]),v=n.useCallback(async(e,a,s,r)=>{await m(e,"bridge/request/device/rename",{from:a,to:s,homeassistant_rename:r,last:void 0})},[]),x=n.useCallback(async([e,a])=>{await m(e,"bridge/request/device/configure",{id:a})},[]),_=n.useCallback(async([e,a])=>{await m(e,"bridge/request/device/interview",{id:a})},[]),p=n.useCallback(async(e,a,s,r)=>{await m(e,"bridge/request/device/remove",{id:a,force:s,block:r})},[]),j=n.useMemo(()=>[{id:"source",size:60,header:()=>i.jsx("span",{title:t(e=>e.source,{ns:"common"}),children:i.jsx(z,{icon:C})}),accessorFn:({sourceIdx:e})=>k[e],cell:({row:{original:{sourceIdx:e}}})=>i.jsx(q,{idx:e,nameClassName:"hidden md:inline-block"}),filterFn:"equals",meta:{filterVariant:"select",showFacetedOccurrences:!0}},{id:"friendly_name",size:250,minSize:175,header:t(e=>e.friendly_name,{ns:"common"}),accessorFn:({device:e})=>`${e.friendly_name} ${e.description??""}`,cell:({row:{original:{sourceIdx:e,device:a,state:s}}})=>i.jsxs("div",{className:"flex items-center gap-3",children:[i.jsx("div",{className:"avatar",children:i.jsx("div",{className:"h-11 w-11",style:{overflow:"visible"},children:i.jsx(I,{device:a,otaState:s.update?.state,disabled:a.disabled})})}),i.jsxs("div",{className:"flex-grow flex flex-col min-w-0",children:[i.jsx(w,{to:`/device/${e}/${a.ieee_address}/info`,className:"link link-hover truncate",children:a.friendly_name}),a.description&&i.jsx("div",{className:"max-w-3xs text-xs opacity-50 truncate",title:a.description,children:a.description})]})]}),sortingFn:(e,a)=>e.original.device.friendly_name.localeCompare(a.original.device.friendly_name),filterFn:"includesString",meta:{filterVariant:"text",textFaceted:!0}},{id:"ieee_address",minSize:175,header:t(e=>e.ieee_address),accessorFn:({device:e})=>`${e.ieee_address} ${y(e.network_address,4)} ${e.network_address}`,cell:({row:{original:{sourceIdx:e,device:a}}})=>i.jsxs(i.Fragment,{children:[i.jsx("div",{children:i.jsx(w,{to:`/device/${e}/${a.ieee_address}/info`,className:"link link-hover",children:a.ieee_address})}),i.jsxs("div",{className:"flex flex-row gap-1",children:[i.jsx("span",{className:"badge badge-ghost badge-sm cursor-default",title:t(s=>s.network_address_hex),children:y(a.network_address,4)}),i.jsx("span",{className:"badge badge-ghost badge-sm cursor-default",title:t(s=>s.network_address_dec),children:a.network_address})]})]}),sortingFn:(e,a)=>e.original.device.ieee_address.localeCompare(a.original.device.ieee_address),filterFn:"includesString",meta:{filterVariant:"text"}},{id:"model",minSize:175,header:t(e=>e.model),accessorFn:({device:e})=>`${e.definition?.model??""} ${e.model_id??""} ${e.definition?.vendor??e.manufacturer??""}`,cell:({row:{original:{device:e}}})=>i.jsxs(i.Fragment,{children:[i.jsx(R,{device:e}),i.jsx("div",{className:"flex flex-row gap-1",children:i.jsx("span",{className:"badge badge-ghost badge-sm tooltip tooltip-bottom","data-tip":t(a=>a.manufacturer),children:i.jsx(B,{device:e})})})]}),filterFn:"includesString",meta:{filterVariant:"text",textFaceted:!0,showFacetedOccurrences:!0}},{id:"type",size:100,header:t(e=>e.type),accessorFn:({device:e})=>t(a=>a[e.type]),cell:({row:{original:{device:e}}})=>t(a=>a[e.type]),filterFn:"equals",meta:{filterVariant:"select",showFacetedOccurrences:!0}},{id:"lqi",size:70,header:t(e=>e.lqi),accessorFn:({state:e})=>e.linkquality,cell:({row:{original:{state:e}}})=>i.jsx(O,{value:e.linkquality}),filterFn:"inNumberRange",meta:{filterVariant:"range"}},{id:"last_seen",size:120,header:t(e=>e.last_seen),accessorFn:({sourceIdx:e,state:a})=>{const s=f(a.last_seen,l[e].config.advanced.last_seen);return s?Math.round((Date.now()-s)/1e3/60):void 0},cell:({row:{original:{sourceIdx:e,state:a}}})=>i.jsx(E,{lastSeen:a.last_seen,config:l[e].config.advanced.last_seen}),sortingFn:(e,a)=>{const s=f(e.original.state.last_seen,l[e.original.sourceIdx].config.advanced.last_seen),r=f(a.original.state.last_seen,l[a.original.sourceIdx].config.advanced.last_seen);return s>r?-1:s<r?1:0},enableGlobalFilter:!1,filterFn:"inNumberRange",meta:{filterVariant:"range",tooltip:t(e=>e.last_seen_filter_info,{ns:"common"})}},{id:"availability",size:125,header:t(e=>e.availability,{ns:"availability"}),accessorFn:({sourceIdx:e,availabilityState:a,availabilityEnabledForDevice:s,device:r})=>t(d=>d[r.disabled?"disabled":s??l[e].config.availability.enabled?a:"disabled"],{ns:"availability"}),cell:({row:{original:{sourceIdx:e,device:a,availabilityState:s,availabilityEnabledForDevice:r}}})=>i.jsx($,{disabled:a.disabled,availability:s,availabilityEnabledForDevice:r,availabilityFeatureEnabled:l[e].config.availability.enabled}),filterFn:"equals",meta:{filterVariant:"select",showFacetedOccurrences:!0}},{id:"power_source",size:100,header:t(e=>e.power_source),accessorFn:({device:e})=>e.power_source,filterFn:"equals",meta:{filterVariant:"select",showFacetedOccurrences:!0}},{id:"battery_level",size:100,header:t(e=>e.battery_level),accessorFn:({state:e})=>e.battery??void 0,cell:({row:{original:{state:e,batteryLow:a}}})=>e.battery==null?"N/A":i.jsxs("span",{className:a?"text-error":void 0,children:[String(e.battery),"%"]}),filterFn:"inNumberRange",meta:{filterVariant:"range"}},{id:"battery_low",size:100,header:t(e=>e.battery_low),accessorFn:({batteryLow:e})=>e,cell:({row:{original:{batteryLow:e}}})=>e===void 0?"N/A":i.jsx("span",{className:e?"text-error":void 0,children:String(e)}),filterFn:"equals",meta:{filterVariant:"boolean"}},{id:"disabled",size:100,header:t(e=>e.disabled,{ns:"common"}),accessorFn:({device:e})=>`${!!e.disabled}`,filterFn:"equals",meta:{filterVariant:"select"}},{id:"actions",minSize:130,cell:({row:{original:{sourceIdx:e,device:a,state:s}}})=>i.jsx(A,{sourceIdx:e,device:a,otaState:s.update?.state,homeassistantEnabled:l[e].config.homeassistant.enabled,renameDevice:v,removeDevice:p,configureDevice:x,interviewDevice:_,btnClassName:"btn-sm"}),enableSorting:!1,enableColumnFilter:!1,enableGlobalFilter:!1}],[l,v,p,x,_,t]),h=M({id:"all-devices",columns:j,data:F,visibleColumns:{source:D,type:!1,power_source:!1,battery_level:!1,battery_low:!1,disabled:!1},sorting:[{id:"friendly_name",desc:!1}]});return i.jsxs(i.Fragment,{children:[i.jsx(V,{children:i.jsx(T,{...h})}),i.jsx("div",{className:"mb-5",children:i.jsx(L,{id:"all-devices",...h})})]})}export{le as default};