zigbee2mqtt-frontend 0.9.1 → 0.9.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.
Files changed (88) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/dist/assets/{Availability-e3f34491.js → Availability-003eccb5.js} +1 -1
  3. package/dist/assets/Availability-003eccb5.js.br +0 -0
  4. package/dist/assets/{CodeEditor-8f838f2b.js → CodeEditor-29b4941d.js} +1 -1
  5. package/dist/assets/CodeEditor-29b4941d.js.br +0 -0
  6. package/dist/assets/{ConnectedDevicePage-23fbac1c.js → ConnectedDevicePage-f6229205.js} +1 -1
  7. package/dist/assets/ConnectedDevicePage-f6229205.js.br +0 -0
  8. package/dist/assets/{ConnectedMap-f2f16e4a.js → ConnectedMap-1872a278.js} +1 -1
  9. package/dist/assets/ConnectedMap-1872a278.js.br +0 -0
  10. package/dist/assets/{Dashboard-a31f63a3.js → Dashboard-9b4595d6.js} +1 -1
  11. package/dist/assets/Dashboard-9b4595d6.js.br +0 -0
  12. package/dist/assets/{DashboardDevice-ccfe7ecb.js → DashboardDevice-60195d81.js} +1 -1
  13. package/dist/assets/DashboardDevice-60195d81.js.br +0 -0
  14. package/dist/assets/{DashboardFeatureWrapper-a0202672.js → DashboardFeatureWrapper-1abc9897.js} +1 -1
  15. package/dist/assets/DashboardFeatureWrapper-1abc9897.js.br +0 -0
  16. package/dist/assets/{DeviceImage-b0ce2953.js → DeviceImage-3b4915d4.js} +1 -1
  17. package/dist/assets/DeviceImage-3b4915d4.js.br +0 -0
  18. package/dist/assets/{GroupPage-c55487be.js → GroupPage-8c956e8b.js} +1 -1
  19. package/dist/assets/GroupPage-8c956e8b.js.br +0 -0
  20. package/dist/assets/{ReactTableCom-c5fa0b55.js → ReactTableCom-d74e8983.js} +1 -1
  21. package/dist/assets/ReactTableCom-d74e8983.js.br +0 -0
  22. package/dist/assets/{RecallRemove-70fe8bb8.js → RecallRemove-c44ed294.js} +1 -1
  23. package/dist/assets/RecallRemove-c44ed294.js.br +0 -0
  24. package/dist/assets/{_baseSet-1ec3161b.js → _baseSet-9580cd14.js} +1 -1
  25. package/dist/assets/{_getAllKeysIn-d1e577d0.js → _getAllKeysIn-f8f9e6cb.js} +1 -1
  26. package/dist/assets/{bootstrap-5.esm-35e5e53c.js → bootstrap-5.esm-f71148c0.js} +1 -1
  27. package/dist/assets/bootstrap-5.esm-f71148c0.js.br +0 -0
  28. package/dist/assets/{index-cfdcdcf7.js → index-064644be.js} +1 -1
  29. package/dist/assets/index-064644be.js.br +0 -0
  30. package/dist/assets/index-1f7ed5b8.js +1 -0
  31. package/dist/assets/index-1f7ed5b8.js.br +0 -0
  32. package/dist/assets/{index-fa2b36de.js → index-1fd72663.js} +1 -1
  33. package/dist/assets/index-1fd72663.js.br +0 -0
  34. package/dist/assets/index-20d96d6d.js +66 -0
  35. package/dist/assets/index-20d96d6d.js.br +0 -0
  36. package/dist/assets/{index-58298b0b.js → index-4942892c.js} +1 -1
  37. package/dist/assets/index-4942892c.js.br +0 -0
  38. package/dist/assets/{index-facf920d.js → index-602313de.js} +1 -1
  39. package/dist/assets/index-602313de.js.br +0 -0
  40. package/dist/assets/index-80df36d1.js +1 -0
  41. package/dist/assets/{index-87401d53.js → index-b54cf175.js} +1 -1
  42. package/dist/assets/index-b54cf175.js.br +0 -0
  43. package/dist/assets/{index-fa2281ed.js → index-bf535e7e.js} +1 -1
  44. package/dist/assets/index-bf535e7e.js.br +0 -0
  45. package/dist/assets/{index-16e319d7.js → index-e12d529d.js} +46 -63
  46. package/dist/assets/index-e12d529d.js.br +0 -0
  47. package/dist/assets/{intersection-87b17905.js → intersection-00b5d8ed.js} +1 -1
  48. package/dist/assets/intersection-00b5d8ed.js.br +0 -0
  49. package/dist/assets/{isEqual-7fe66f96.js → isEqual-2bd1f3a6.js} +1 -1
  50. package/dist/assets/{jszip.min-db1a8563.js → jszip.min-f201b749.js} +1 -1
  51. package/dist/assets/jszip.min-f201b749.js.br +0 -0
  52. package/dist/assets/{persist-2803de70.js → persist-45b1730f.js} +1 -1
  53. package/dist/assets/persist-45b1730f.js.br +0 -0
  54. package/dist/assets/{rjsf-translation-fields-201a8d86.js → rjsf-translation-fields-3acfc8df.js} +1 -1
  55. package/dist/assets/{spinner-d5ff5058.js → spinner-c6b7d6b4.js} +1 -1
  56. package/dist/assets/{vendor-links-6df665d0.js → vendor-links-f7b4e675.js} +1 -1
  57. package/dist/assets/vendor-links-f7b4e675.js.br +0 -0
  58. package/dist/index.html +1 -1
  59. package/dist/index.html.br +0 -0
  60. package/package.json +1 -1
  61. package/dist/assets/Availability-e3f34491.js.br +0 -0
  62. package/dist/assets/CodeEditor-8f838f2b.js.br +0 -0
  63. package/dist/assets/ConnectedDevicePage-23fbac1c.js.br +0 -0
  64. package/dist/assets/ConnectedMap-f2f16e4a.js.br +0 -0
  65. package/dist/assets/Dashboard-a31f63a3.js.br +0 -0
  66. package/dist/assets/DashboardDevice-ccfe7ecb.js.br +0 -0
  67. package/dist/assets/DashboardFeatureWrapper-a0202672.js.br +0 -0
  68. package/dist/assets/DeviceImage-b0ce2953.js.br +0 -0
  69. package/dist/assets/GroupPage-c55487be.js.br +0 -0
  70. package/dist/assets/ReactTableCom-c5fa0b55.js.br +0 -0
  71. package/dist/assets/RecallRemove-70fe8bb8.js.br +0 -0
  72. package/dist/assets/bootstrap-5.esm-35e5e53c.js.br +0 -0
  73. package/dist/assets/index-16e319d7.js.br +0 -0
  74. package/dist/assets/index-58298b0b.js.br +0 -0
  75. package/dist/assets/index-6f4fc5d2.js +0 -1
  76. package/dist/assets/index-6f4fc5d2.js.br +0 -0
  77. package/dist/assets/index-87401d53.js.br +0 -0
  78. package/dist/assets/index-9d70ff17.js +0 -1
  79. package/dist/assets/index-cdcf121a.js +0 -36
  80. package/dist/assets/index-cdcf121a.js.br +0 -0
  81. package/dist/assets/index-cfdcdcf7.js.br +0 -0
  82. package/dist/assets/index-fa2281ed.js.br +0 -0
  83. package/dist/assets/index-fa2b36de.js.br +0 -0
  84. package/dist/assets/index-facf920d.js.br +0 -0
  85. package/dist/assets/intersection-87b17905.js.br +0 -0
  86. package/dist/assets/jszip.min-db1a8563.js.br +0 -0
  87. package/dist/assets/persist-2803de70.js.br +0 -0
  88. package/dist/assets/vendor-links-6df665d0.js.br +0 -0
@@ -1 +1 @@
1
- import{c as m,a as p,w as u,r as g,j as e,L as f,g as k,B as t,b as d}from"./index-16e319d7.js";import{T as x}from"./ReactTableCom-c5fa0b55.js";import"./persist-2803de70.js";class b extends g.Component{constructor(){super(...arguments),this.onIdentifyClick=n=>{const{touchlinkIdentify:i}=this.props;i(n)},this.onResetClick=n=>{const{touchlinkReset:i}=this.props;i(n)}}renderTouchlinkDevices(){const{touchlinkDevices:n,devices:i,touchlinkIdentifyInProgress:r,touchlinkResetInProgress:a,t:c}=this.props,o=r||a,h=[{Header:c("zigbee:ieee_address"),accessor:s=>s.ieee_address,Cell:({row:{original:s}})=>i[s.ieee_address]?e.jsx(f,{to:k(s.ieee_address),children:s.ieee_address}):s.ieee_address},{Header:c("zigbee:friendly_name"),accessor:s=>{var l;return(l=i[s.ieee_address])==null?void 0:l.friendly_name}},{id:"channel",Header:c("zigbee:channel"),accessor:"channel"},{id:"actions",Header:"",Cell:({row:{original:s}})=>e.jsxs("div",{className:"btn-group float-right",role:"group","aria-label":"Basic example",children:[e.jsx(t,{disabled:o,item:s,title:c("identify"),className:"btn btn-primary",onClick:this.onIdentifyClick,children:e.jsx("i",{className:d("fa",{"fa-exclamation-triangle":!r,"fas fa-circle-notch fa-spin":r})})}),e.jsx(t,{disabled:o,item:s,title:c("factory_reset"),className:"btn btn-danger",onClick:this.onResetClick,children:e.jsx("i",{className:d("fa",{"fa-broom":!a,"fas fa-circle-notch fa-spin":a})})})]})}];return e.jsx("div",{className:"table-responsive",children:e.jsx(x,{id:"touchlinkDevices",columns:h,data:n})})}renderNoDevices(){const{touchlinkScan:n,t:i}=this.props;return e.jsx(t,{className:"btn btn-primary mx-auto d-block",onClick:n,children:i("scan")})}render(){const{touchlinkDevices:n,touchlinkScanInProgress:i,touchlinkScan:r,t:a}=this.props;return e.jsxs("div",{className:"card",children:[e.jsxs("div",{className:"card-header allign-middle",children:[a("detected_devices_message",{count:n.length}),e.jsx(t,{title:a("rescan"),className:"btn btn-primary btn-sm float-right",onClick:r,children:e.jsx("i",{className:"fa fa-sync"})})]}),e.jsx("div",{className:"card-body",children:i?e.jsx("div",{className:"d-flex justify-content-center",children:e.jsx("div",{className:"spinner-border",role:"status",children:e.jsx("span",{className:"sr-only",children:a("common:loading")})})}):n.length===0?this.renderNoDevices():this.renderTouchlinkDevices()})]})}}const j=["touchlinkDevices","devices","touchlinkScanInProgress","touchlinkIdentifyInProgress","touchlinkResetInProgress"],I=m(j,p)(u(["touchlink","zigbee","common"])(b));export{I as ConnectedTouchlinkPage};
1
+ import{c as m,a as p,w as u,r as g,j as e,L as f,g as k,B as t,b as d}from"./index-e12d529d.js";import{T as x}from"./ReactTableCom-d74e8983.js";import"./persist-45b1730f.js";class b extends g.Component{constructor(){super(...arguments),this.onIdentifyClick=n=>{const{touchlinkIdentify:i}=this.props;i(n)},this.onResetClick=n=>{const{touchlinkReset:i}=this.props;i(n)}}renderTouchlinkDevices(){const{touchlinkDevices:n,devices:i,touchlinkIdentifyInProgress:r,touchlinkResetInProgress:a,t:c}=this.props,o=r||a,h=[{Header:c("zigbee:ieee_address"),accessor:s=>s.ieee_address,Cell:({row:{original:s}})=>i[s.ieee_address]?e.jsx(f,{to:k(s.ieee_address),children:s.ieee_address}):s.ieee_address},{Header:c("zigbee:friendly_name"),accessor:s=>{var l;return(l=i[s.ieee_address])==null?void 0:l.friendly_name}},{id:"channel",Header:c("zigbee:channel"),accessor:"channel"},{id:"actions",Header:"",Cell:({row:{original:s}})=>e.jsxs("div",{className:"btn-group float-right",role:"group","aria-label":"Basic example",children:[e.jsx(t,{disabled:o,item:s,title:c("identify"),className:"btn btn-primary",onClick:this.onIdentifyClick,children:e.jsx("i",{className:d("fa",{"fa-exclamation-triangle":!r,"fas fa-circle-notch fa-spin":r})})}),e.jsx(t,{disabled:o,item:s,title:c("factory_reset"),className:"btn btn-danger",onClick:this.onResetClick,children:e.jsx("i",{className:d("fa",{"fa-broom":!a,"fas fa-circle-notch fa-spin":a})})})]})}];return e.jsx("div",{className:"table-responsive",children:e.jsx(x,{id:"touchlinkDevices",columns:h,data:n})})}renderNoDevices(){const{touchlinkScan:n,t:i}=this.props;return e.jsx(t,{className:"btn btn-primary mx-auto d-block",onClick:n,children:i("scan")})}render(){const{touchlinkDevices:n,touchlinkScanInProgress:i,touchlinkScan:r,t:a}=this.props;return e.jsxs("div",{className:"card",children:[e.jsxs("div",{className:"card-header allign-middle",children:[a("detected_devices_message",{count:n.length}),e.jsx(t,{title:a("rescan"),className:"btn btn-primary btn-sm float-right",onClick:r,children:e.jsx("i",{className:"fa fa-sync"})})]}),e.jsx("div",{className:"card-body",children:i?e.jsx("div",{className:"d-flex justify-content-center",children:e.jsx("div",{className:"spinner-border",role:"status",children:e.jsx("span",{className:"sr-only",children:a("common:loading")})})}):n.length===0?this.renderNoDevices():this.renderTouchlinkDevices()})]})}}const j=["touchlinkDevices","devices","touchlinkScanInProgress","touchlinkIdentifyInProgress","touchlinkResetInProgress"],I=m(j,p)(u(["touchlink","zigbee","common"])(b));export{I as ConnectedTouchlinkPage};
Binary file
@@ -0,0 +1,66 @@
1
+ import{j as e,B as l,N as h,u,e as b,r as c,M as g,f as E,h as C,k as v,_ as j,c as y,a as _,w as f}from"./index-e12d529d.js";const N=`class MyExampleExtension_TS_ {
2
+ constructor(
3
+ zigbee,
4
+ mqtt,
5
+ state,
6
+ publishEntityState,
7
+ eventBus,
8
+ enableDisableExtension,
9
+ restartCallback,
10
+ addExtension,
11
+ settings,
12
+ logger,
13
+ ) {
14
+ this.zigbee = zigbee;
15
+ this.mqtt = mqtt;
16
+ this.state = state;
17
+ this.publishEntityState = publishEntityState;
18
+ this.eventBus = eventBus;
19
+ this.enableDisableExtension = enableDisableExtension;
20
+ this.restartCallback = restartCallback;
21
+ this.addExtension = addExtension;
22
+ this.settings = settings;
23
+ this.logger = logger;
24
+
25
+ this.logger.info('Loaded MyExampleExtension_TS_');
26
+ this.mqttBaseTopic = this.settings.get().mqtt.base_topic;
27
+ }
28
+
29
+ /**
30
+ * Called when the extension starts (on Zigbee2MQTT startup, or when the extension is saved at runtime)
31
+ */
32
+ start() {
33
+ this.mqtt.publish('example/extension', 'hello from MyExampleExtension_TS_');
34
+
35
+ // all possible events can be seen here: https://github.com/Koenkk/zigbee2mqtt/blob/master/lib/eventBus.ts
36
+
37
+ this.eventBus.onStateChange(this, this.onStateChange.bind(this));
38
+ }
39
+
40
+ /**
41
+ * Called when the extension stops (on Zigbee2MQTT shutdown, or when the extension is saved/removed at runtime)
42
+ */
43
+ stop() {
44
+ this.eventBus.removeListeners(this);
45
+ }
46
+
47
+ async onStateChange(data) {
48
+ // see typing (properties) here: https://github.com/Koenkk/zigbee2mqtt/blob/master/lib/types/types.d.ts => namespace eventdata
49
+ const { entity, update } = data;
50
+
51
+ // example how to toggle state
52
+ if (entity.ID === '0x00158d000224154d') {
53
+ this.logger.info(\`State changed for 0x00158d000224154d: \${JSON.stringify(data)}\`);
54
+
55
+ // state changed for some device (example: clicked a button)
56
+ if (update.action === 'single') {
57
+ const myLampIeeAddr = '0x00124b001e73227f'; // change this
58
+
59
+ this.mqtt.onMessage(\`\${this.mqttBaseTopic}/\${myLampIeeAddr}/set\`, JSON.stringify({ state: 'toggle' }));
60
+ }
61
+ }
62
+ }
63
+ }
64
+
65
+ module.exports = MyExampleExtension_TS_;
66
+ `,S=h.create(r=>{const{updateExtensionCode:t,onCreated:o,ts:n}=r,{t:i}=u(["extensions","common"]),s=b(),[a,m]=c.useState(`example-user-extension${n}.js`),d=N.replace(/_TS_/g,n.toString()),x=()=>{t({name:a,code:d}),o({name:a,code:d}),s.remove()};return e.jsxs(g,{isOpen:s.visible,children:[e.jsx(E,{children:i("create_new_extension")}),e.jsxs(C,{children:[e.jsx("label",{className:"form-label",children:i("extension_name_propmt")}),e.jsx("input",{type:"text",className:"form-control",value:a,onChange:p=>m(p.target.value)})]}),e.jsxs(v,{children:[e.jsx("button",{type:"button",className:"btn btn-secondary",onClick:s.remove,children:i("common:close")}),e.jsx("button",{type:"button",className:"btn btn-primary",onClick:x,children:i("common:ok")})]})]})});function k(r){return e.jsx(l,{className:"btn btn-success me-2",onClick:()=>h.show(S,{ts:Date.now(),...r}),children:e.jsx("i",{className:"fa fa-plus"})})}const M=c.lazy(()=>j(()=>import("./CodeEditor-29b4941d.js"),["./CodeEditor-29b4941d.js","./index-e12d529d.js","./index-0f5e7faa.css","./extends-98964cd2.js"],import.meta.url));class w extends c.Component{constructor(){super(...arguments),this.state={},this.loadExtension=t=>{const{value:o}=t.target;this.setState({currentExtension:o})},this.onExtensionCodeChange=t=>{const{updateExtensionCode:o}=this.props,{currentExtension:n}=this.state;n&&o({name:n,code:t})},this.onSaveClick=()=>{const{saveExtensionCode:t}=this.props;t(this.getCurrentExtension())},this.removeExtension=()=>{const{removeExtension:t}=this.props;t(this.getCurrentExtension())}}getCurrentExtension(){const{currentExtension:t}=this.state,{extensions:o}=this.props;return o.find(n=>n.name===t)}renderControls(){const{currentExtension:t}=this.state,{extensions:o,t:n,updateExtensionCode:i}=this.props;return e.jsxs("div",{className:"row mb-2",children:[e.jsx("div",{className:"col-6",children:e.jsxs("select",{value:t,className:"form-control",onChange:this.loadExtension,children:[e.jsx("option",{hidden:!0,children:n("select_extension_to_edit")},"hidden"),o.map(({name:s})=>e.jsx("option",{value:s,children:s},s))]})}),e.jsxs("div",{className:"col-6",children:[e.jsx(k,{updateExtensionCode:i,onCreated:s=>this.setState({currentExtension:s.name})}),e.jsx(l,{prompt:!0,disabled:!t,onClick:this.removeExtension,className:"btn btn-danger me-2",children:e.jsx("i",{className:"fa fa-trash"})}),e.jsx(l,{disabled:!t,onClick:this.onSaveClick,className:"btn btn-primary",children:n("common:save")})]})]})}renderEditor(){var s;const{currentExtension:t}=this.state,{extensions:o,theme:n}=this.props,i=((s=o.find(a=>a.name===t))==null?void 0:s.code)??"";return e.jsx(M,{value:i,onChange:this.onExtensionCodeChange,theme:n})}render(){return e.jsx("div",{className:"card h-100",children:e.jsxs("div",{className:"card-body h-100",children:[this.renderControls(),this.renderEditor()]})})}}const T=["extensions","theme"],q=y(T,_)(f("extensions")(w));export{q as ConnectedExtensionsEditorPage};
Binary file
@@ -1 +1 @@
1
- import{c as m,a as p,w as g,r as u,i as b,j as s,L as h,g as f,B as l,u as _,t as j}from"./index-16e319d7.js";import{D as x}from"./DeviceImage-b0ce2953.js";import{V as v,M as k,O}from"./vendor-links-6df665d0.js";import{T as A}from"./ReactTableCom-c5fa0b55.js";import"./index-9d70ff17.js";import"./persist-2803de70.js";const w={"device-image":"_device-image_29lej_1"},y=d=>{const{t:r}=_("ota"),{device:o,state:a,checkOTA:i,updateOTA:n}=d,c=(a==null?void 0:a.update)??{};switch(c.state){case"updating":return s.jsxs(s.Fragment,{children:[s.jsx("div",{className:"progress",children:s.jsxs("div",{className:"progress-bar progress-bar-striped progress-bar-animated",style:{width:`${c.progress}%`},children:[c.progress,"%"]})}),s.jsx("div",{children:r("remaining_time",{remaining:j(c.remaining)})})]});case"available":return s.jsx(l,{className:"btn btn-danger btn-sm",onClick:n,item:o.friendly_name,prompt:!0,children:r("update")});default:return s.jsx(l,{className:"btn btn-primary btn-sm",onClick:i,item:o.friendly_name,children:r("check")})}};class D extends u.Component{constructor(){super(...arguments),this.checkAllOTA=()=>{const{checkOTA:r}=this.props;this.getAllOtaDevices().forEach(({device:a})=>r(a.friendly_name))}}getAllOtaDevices(){const{devices:r,deviceStates:o,bridgeInfo:{config:a}}=this.props;return Object.values(r).filter(i=>{var n;return((n=i==null?void 0:i.definition)==null?void 0:n.supports_ota)&&!b(i,a)}).map(i=>{const n=o[i.friendly_name]??{};return{id:i.friendly_name,device:i,state:n}})}render(){const{checkOTA:r,updateOTA:o,t:a}=this.props,i={checkOTA:r,updateOTA:o},n=this.getAllOtaDevices(),c=[{Header:a("zigbee:pic"),Cell:({row:{original:{device:e,state:t}}})=>s.jsx(x,{className:w["device-image"],device:e,deviceStatus:t,disabled:!1}),disableSortBy:!0},{Header:a("zigbee:friendly_name"),accessor:({device:e})=>e.friendly_name,Cell:({row:{original:{device:e}}})=>s.jsx(h,{to:f(e.ieee_address),children:e.friendly_name})},{Header:a("zigbee:manufacturer"),accessor:({device:e})=>{var t;return[e.manufacturer,(t=e.definition)==null?void 0:t.vendor].join(" ")},Cell:({row:{original:{device:e}}})=>s.jsx(v,{device:e})},{Header:a("zigbee:model"),accessor:({device:e})=>{var t;return[e.model_id,(t=e.definition)==null?void 0:t.model].join(" ")},Cell:({row:{original:{device:e}}})=>s.jsx(k,{device:e})},{Header:a("zigbee:firmware_build_date"),accessor:({device:e})=>e.date_code},{Header:a("zigbee:firmware_version"),accessor:({device:e})=>e.software_build_id,Cell:({row:{original:{device:e}}})=>s.jsx(O,{device:e})},{Header:()=>s.jsx(l,{className:"btn btn-danger btn-sm",onClick:this.checkAllOTA,prompt:!0,children:a("check_all")}),accessor:({state:e})=>((e==null?void 0:e.update)??{}).state+"",id:"check_all",Cell:({row:{original:{device:e,state:t}}})=>s.jsx(y,{device:e,state:t,...i})}];return s.jsx("div",{className:"card",children:s.jsx("div",{className:"table-responsive",children:s.jsx(A,{id:"otaDevices",columns:c,data:n,initialState:{sortBy:[{id:"check_all",desc:!1}]}})})})}}const C=["devices","deviceStates","bridgeInfo"],B=m(C,p)(g(["ota","zigbee","common"])(D));export{B as ConnectedOtaPage};
1
+ import{c as m,a as p,w as g,r as u,i as b,j as s,L as h,g as f,B as l,u as _,t as j}from"./index-e12d529d.js";import{D as x}from"./DeviceImage-3b4915d4.js";import{V as v,M as k,O}from"./vendor-links-f7b4e675.js";import{T as A}from"./ReactTableCom-d74e8983.js";import"./index-80df36d1.js";import"./persist-45b1730f.js";const w={"device-image":"_device-image_29lej_1"},y=d=>{const{t:r}=_("ota"),{device:o,state:a,checkOTA:i,updateOTA:n}=d,c=(a==null?void 0:a.update)??{};switch(c.state){case"updating":return s.jsxs(s.Fragment,{children:[s.jsx("div",{className:"progress",children:s.jsxs("div",{className:"progress-bar progress-bar-striped progress-bar-animated",style:{width:`${c.progress}%`},children:[c.progress,"%"]})}),s.jsx("div",{children:r("remaining_time",{remaining:j(c.remaining)})})]});case"available":return s.jsx(l,{className:"btn btn-danger btn-sm",onClick:n,item:o.friendly_name,prompt:!0,children:r("update")});default:return s.jsx(l,{className:"btn btn-primary btn-sm",onClick:i,item:o.friendly_name,children:r("check")})}};class D extends u.Component{constructor(){super(...arguments),this.checkAllOTA=()=>{const{checkOTA:r}=this.props;this.getAllOtaDevices().forEach(({device:a})=>r(a.friendly_name))}}getAllOtaDevices(){const{devices:r,deviceStates:o,bridgeInfo:{config:a}}=this.props;return Object.values(r).filter(i=>{var n;return((n=i==null?void 0:i.definition)==null?void 0:n.supports_ota)&&!b(i,a)}).map(i=>{const n=o[i.friendly_name]??{};return{id:i.friendly_name,device:i,state:n}})}render(){const{checkOTA:r,updateOTA:o,t:a}=this.props,i={checkOTA:r,updateOTA:o},n=this.getAllOtaDevices(),c=[{Header:a("zigbee:pic"),Cell:({row:{original:{device:e,state:t}}})=>s.jsx(x,{className:w["device-image"],device:e,deviceStatus:t,disabled:!1}),disableSortBy:!0},{Header:a("zigbee:friendly_name"),accessor:({device:e})=>e.friendly_name,Cell:({row:{original:{device:e}}})=>s.jsx(h,{to:f(e.ieee_address),children:e.friendly_name})},{Header:a("zigbee:manufacturer"),accessor:({device:e})=>{var t;return[e.manufacturer,(t=e.definition)==null?void 0:t.vendor].join(" ")},Cell:({row:{original:{device:e}}})=>s.jsx(v,{device:e})},{Header:a("zigbee:model"),accessor:({device:e})=>{var t;return[e.model_id,(t=e.definition)==null?void 0:t.model].join(" ")},Cell:({row:{original:{device:e}}})=>s.jsx(k,{device:e})},{Header:a("zigbee:firmware_build_date"),accessor:({device:e})=>e.date_code},{Header:a("zigbee:firmware_version"),accessor:({device:e})=>e.software_build_id,Cell:({row:{original:{device:e}}})=>s.jsx(O,{device:e})},{Header:()=>s.jsx(l,{className:"btn btn-danger btn-sm",onClick:this.checkAllOTA,prompt:!0,children:a("check_all")}),accessor:({state:e})=>((e==null?void 0:e.update)??{}).state+"",id:"check_all",Cell:({row:{original:{device:e,state:t}}})=>s.jsx(y,{device:e,state:t,...i})}];return s.jsx("div",{className:"card",children:s.jsx("div",{className:"table-responsive",children:s.jsx(A,{id:"otaDevices",columns:c,data:n,initialState:{sortBy:[{id:"check_all",desc:!1}]}})})})}}const C=["devices","deviceStates","bridgeInfo"],B=m(C,p)(g(["ota","zigbee","common"])(D));export{B as ConnectedOtaPage};
Binary file
@@ -1 +1 @@
1
- import{p as v,O as u,C as x,j as e,b,v as _,c as N,a as y,w as C,r as L,H as g}from"./index-16e319d7.js";import{w,T as S}from"./bootstrap-5.esm-35e5e53c.js";import{_ as E}from"./_baseSet-1ec3161b.js";var F=u,j=/[\\^$.*+?()[\]{}|]/g,R=RegExp(j.source);function T(s){return s=F(s),s&&R.test(s)?s.replace(j,"\\$&"):s}var $=T;const D=v($);var K=E;function P(s,o,a){return s==null?s:K(s,o,a)}var H=P;const I=v(H),O={"hide-description":"_hide-description_19xm6_1"},k=w(S);function z(s){const{schema:o={},schemaKey:a="",config:c={},configKey:t="",onChange:r}=s,n=x(c,t,{}),d=x(o,a,{}),l=i=>{const h={};I(h,t,i.formData),r(h)};return e.jsx(k,{schema:d,className:O["hide-description"],formData:n,onChange:l,children:e.jsx("div",{})})}const m="all",p=({text:s})=>e.jsx(e.Fragment,{children:s}),A=({text:s="",highlight:o=""})=>{if(!o.trim())return e.jsx(p,{text:s});const a=new RegExp(`(${D(o)})`,"gi"),c=s.split(a);return e.jsx(e.Fragment,{children:c.filter(t=>t).map((t,r)=>a.test(t)?e.jsx("mark",{children:t},r):e.jsx(p,{text:t},r))})};function f(s){const{logLevel:o,log:a,search:c}=s,t=o===m&&e.jsxs(e.Fragment,{children:[e.jsx("span",{style:{width:"60px"},className:b("badge",{"bg-danger":a.level==="error","bg-warning":a.level==="warning","bg-info":a.level==="info","bg-secondary":!["error","warning","info"].includes(a.level)},"text-capitalize"),children:a.level})," "]});return e.jsxs("div",{children:[t,e.jsx("small",{className:"pe-1",children:_(a.timestamp)}),e.jsx("code",{children:e.jsx(A,{text:a.message,highlight:c})})]})}const B=[m,"debug","info","warning","error"],M=[100,200,500,1e3];class W extends L.Component{constructor(){super(...arguments),this.state={search:"",logLevel:m}}renderSearch(){const{clearLogs:o,bridgeInfo:{config_schema:a,config:c},updateBridgeConfig:t,t:r}=this.props,{search:n}=this.state,{logsLimit:d}=g.getState();return e.jsx("div",{className:"card",children:e.jsx("div",{className:"card-body",children:e.jsxs("div",{className:"row row-cols-lg-auto g-3 align-items-center",children:[e.jsxs("div",{className:"col-12 col-sm-4 col-xxl-4",children:[e.jsx("label",{htmlFor:"log-level",className:"form-label",children:r("show_only")}),e.jsx("select",{id:"log-level",className:"form-select",onChange:l=>this.setState({logLevel:l.target.value}),children:B.map(l=>e.jsx("option",{value:l,children:l},l))})]}),e.jsxs("div",{className:"col-12 col-sm-4 col-xxl-4",children:[e.jsx("label",{htmlFor:"search-filter",className:"form-label",children:r("filter_by_text")}),e.jsx("input",{id:"search-filter",className:"form-control col-10",placeholder:r("common:enter_search_criteria"),value:n,onChange:l=>this.setState({search:l.target.value}),type:"text"})]}),e.jsx("div",{className:"col-12 col-sm-4 col-xxl-4",children:e.jsx(z,{schema:a,schemaKey:"properties.advanced.properties.log_level",config:c,configKey:"advanced.log_level",onChange:t})}),e.jsxs("div",{className:"col-12 col-sm-4 col-xxl-4",children:[e.jsx("label",{htmlFor:"logs-limit",className:"form-label",children:r("logs_limit")}),e.jsx("select",{id:"logs-limit",className:"form-select",onChange:l=>{const i=parseInt(l.target.value);g.setState({logsLimit:i,logs:[...g.getState().logs.slice(-i)]})},children:M.map(l=>e.jsx("option",{value:l,selected:l==d,children:l},l))})]}),e.jsxs("div",{className:"col-12",children:[e.jsx("label",{htmlFor:"reset",children:" "}),e.jsx("input",{id:"reset",type:"button",onClick:o,className:"btn btn-primary form-control",value:r("common:clear")})]})]})})})}render(){let{logs:o}=this.props;const{t:a}=this.props,{search:c,logLevel:t}=this.state;return o=o.filter(r=>(t===m||r.level===t)&&(!c||r.message.toLowerCase().includes(c.toLowerCase()))).sort(),e.jsxs(e.Fragment,{children:[this.renderSearch(),e.jsx("div",{className:"card",children:e.jsxs("div",{className:"card-body",children:[o.length==0?e.jsx("h1",{children:a("empty_logs_message")}):null,e.jsx("div",{className:"overflow-auto",children:o.map((r,n)=>e.jsx(f,{log:r,search:c,logLevel:t},n))})]})})]})}}const q=["logs","bridgeInfo"],G=N(q,y)(C(["logs","common"])(W)),V=Object.freeze(Object.defineProperty({__proto__:null,ConnectedLogsPage:G,LogRow:f},Symbol.toStringTag,{value:"Module"}));export{m as A,f as L,V as i};
1
+ import{p as v,O as u,C as x,j as e,b,v as _,c as N,a as y,w as C,r as L,H as g}from"./index-e12d529d.js";import{w,T as S}from"./bootstrap-5.esm-f71148c0.js";import{_ as E}from"./_baseSet-9580cd14.js";var F=u,j=/[\\^$.*+?()[\]{}|]/g,R=RegExp(j.source);function T(s){return s=F(s),s&&R.test(s)?s.replace(j,"\\$&"):s}var $=T;const D=v($);var K=E;function P(s,o,a){return s==null?s:K(s,o,a)}var H=P;const I=v(H),O={"hide-description":"_hide-description_19xm6_1"},k=w(S);function z(s){const{schema:o={},schemaKey:a="",config:c={},configKey:t="",onChange:r}=s,n=x(c,t,{}),d=x(o,a,{}),l=i=>{const h={};I(h,t,i.formData),r(h)};return e.jsx(k,{schema:d,className:O["hide-description"],formData:n,onChange:l,children:e.jsx("div",{})})}const m="all",p=({text:s})=>e.jsx(e.Fragment,{children:s}),A=({text:s="",highlight:o=""})=>{if(!o.trim())return e.jsx(p,{text:s});const a=new RegExp(`(${D(o)})`,"gi"),c=s.split(a);return e.jsx(e.Fragment,{children:c.filter(t=>t).map((t,r)=>a.test(t)?e.jsx("mark",{children:t},r):e.jsx(p,{text:t},r))})};function f(s){const{logLevel:o,log:a,search:c}=s,t=o===m&&e.jsxs(e.Fragment,{children:[e.jsx("span",{style:{width:"60px"},className:b("badge",{"bg-danger":a.level==="error","bg-warning":a.level==="warning","bg-info":a.level==="info","bg-secondary":!["error","warning","info"].includes(a.level)},"text-capitalize"),children:a.level})," "]});return e.jsxs("div",{children:[t,e.jsx("small",{className:"pe-1",children:_(a.timestamp)}),e.jsx("code",{children:e.jsx(A,{text:a.message,highlight:c})})]})}const B=[m,"debug","info","warning","error"],M=[100,200,500,1e3];class W extends L.Component{constructor(){super(...arguments),this.state={search:"",logLevel:m}}renderSearch(){const{clearLogs:o,bridgeInfo:{config_schema:a,config:c},updateBridgeConfig:t,t:r}=this.props,{search:n}=this.state,{logsLimit:d}=g.getState();return e.jsx("div",{className:"card",children:e.jsx("div",{className:"card-body",children:e.jsxs("div",{className:"row row-cols-lg-auto g-3 align-items-center",children:[e.jsxs("div",{className:"col-12 col-sm-4 col-xxl-4",children:[e.jsx("label",{htmlFor:"log-level",className:"form-label",children:r("show_only")}),e.jsx("select",{id:"log-level",className:"form-select",onChange:l=>this.setState({logLevel:l.target.value}),children:B.map(l=>e.jsx("option",{value:l,children:l},l))})]}),e.jsxs("div",{className:"col-12 col-sm-4 col-xxl-4",children:[e.jsx("label",{htmlFor:"search-filter",className:"form-label",children:r("filter_by_text")}),e.jsx("input",{id:"search-filter",className:"form-control col-10",placeholder:r("common:enter_search_criteria"),value:n,onChange:l=>this.setState({search:l.target.value}),type:"text"})]}),e.jsx("div",{className:"col-12 col-sm-4 col-xxl-4",children:e.jsx(z,{schema:a,schemaKey:"properties.advanced.properties.log_level",config:c,configKey:"advanced.log_level",onChange:t})}),e.jsxs("div",{className:"col-12 col-sm-4 col-xxl-4",children:[e.jsx("label",{htmlFor:"logs-limit",className:"form-label",children:r("logs_limit")}),e.jsx("select",{id:"logs-limit",className:"form-select",onChange:l=>{const i=parseInt(l.target.value);g.setState({logsLimit:i,logs:[...g.getState().logs.slice(-i)]})},children:M.map(l=>e.jsx("option",{value:l,selected:l==d,children:l},l))})]}),e.jsxs("div",{className:"col-12",children:[e.jsx("label",{htmlFor:"reset",children:" "}),e.jsx("input",{id:"reset",type:"button",onClick:o,className:"btn btn-primary form-control",value:r("common:clear")})]})]})})})}render(){let{logs:o}=this.props;const{t:a}=this.props,{search:c,logLevel:t}=this.state;return o=o.filter(r=>(t===m||r.level===t)&&(!c||r.message.toLowerCase().includes(c.toLowerCase()))).sort(),e.jsxs(e.Fragment,{children:[this.renderSearch(),e.jsx("div",{className:"card",children:e.jsxs("div",{className:"card-body",children:[o.length==0?e.jsx("h1",{children:a("empty_logs_message")}):null,e.jsx("div",{className:"overflow-auto",children:o.map((r,n)=>e.jsx(f,{log:r,search:c,logLevel:t},n))})]})})]})}}const q=["logs","bridgeInfo"],G=N(q,y)(C(["logs","common"])(W)),V=Object.freeze(Object.defineProperty({__proto__:null,ConnectedLogsPage:G,LogRow:f},Symbol.toStringTag,{value:"Module"}));export{m as A,f as L,V as i};
Binary file
@@ -0,0 +1 @@
1
+ import{aP as i}from"./index-e12d529d.js";const n=""+new URL("generic-zigbee-device-c9aa86d9.png",import.meta.url).href,a="https://www.zigbee2mqtt.io/images/devices/",o=e=>{var t;return`${a}${i((t=e==null?void 0:e.definition)==null?void 0:t.model)}.png`},s=e=>{var t;return(t=e.definition)==null?void 0:t.icon},m=[s,o,()=>n];export{m as A,n as a,o as g};
@@ -1 +1 @@
1
- import{r as m,N as p,e as u,j as e,M as h,f as g,h as x,k as b,B as i,w as j,c as N,a as G,u as f,L as d}from"./index-16e319d7.js";import{T as y}from"./ReactTableCom-c5fa0b55.js";import"./persist-2803de70.js";const v=t=>{const[r,s]=m.useState(t);return[r,o=>s({...r,[o.currentTarget.name]:o.currentTarget.value})]},w=p.create(t=>{const{name:r,onRename:s}=t,a=u(),[o,l]=v({friendlyName:r}),n=async()=>{await s(r,o.friendlyName),a.remove()};return e.jsxs(h,{isOpen:a.visible,children:[e.jsxs(g,{children:[e.jsx("h3",{children:"Rename group"}),e.jsx("small",{children:r})]}),e.jsx(x,{children:e.jsxs("div",{className:"mb-3",children:[e.jsx("label",{className:"form-label",children:"Friendly name"}),e.jsx("input",{name:"friendlyName",onChange:l,type:"text",className:"form-control",value:o.friendlyName})]})}),e.jsxs(b,{children:[e.jsx("button",{type:"button",className:"btn btn-secondary",onClick:a.remove,children:"Close"}),e.jsx("button",{type:"button",className:"btn btn-primary",onClick:n,children:"Save changes"})]})]})});function C(t){const{t:r}=f(["groups"]),{groups:s,removeGroup:a,renameGroup:o}=t,l=[{id:"group_id",Header:r("group_id"),accessor:n=>n.id,Cell:({row:{original:n}})=>e.jsx(d,{to:`/group/${n.id}`,children:n.id})},{id:"friendly_name",Header:r("group_name"),accessor:n=>n.friendly_name,Cell:({row:{original:n}})=>e.jsx(d,{to:`/group/${n.id}`,children:n.friendly_name})},{id:"members",Header:r("group_members"),accessor:n=>n.members.length??0},{id:"scenes",Header:r("group_scenes"),accessor:n=>{var c;return((c=n.scenes)==null?void 0:c.length)??0}},{Header:"",id:"actions",Cell:({row:{original:n}})=>e.jsxs("div",{className:"btn-group float-right btn-group-sm",role:"group",children:[e.jsx(i,{className:"btn btn-primary",onClick:()=>p.show(w,{name:n.friendly_name,onRename:o}),title:r("rename_group"),children:e.jsx("i",{className:"fa fa-edit"})}),e.jsx(i,{prompt:!0,title:r("remove_group"),item:n.friendly_name,onClick:a,className:"btn btn-danger",children:e.jsx("i",{className:"fa fa-trash"})})]})}];return e.jsx("div",{className:"card",children:e.jsx(y,{id:"groups",columns:l,data:s})})}class _ extends m.Component{constructor(){super(...arguments),this.state={newGroupName:"",newGroupId:void 0},this.changeHandler=r=>{const{name:s,value:a}=r.target;this.setState({[s]:a})},this.onGroupCreateSubmit=()=>{const{newGroupName:r,newGroupId:s}=this.state,{createGroup:a}=this.props;a(r,s)},this.renameGroup=(r,s)=>{const{renameGroup:a}=this.props;a(r,s)}}renderGroupCreationForm(){const{t:r}=this.props,{newGroupName:s,newGroupId:a}=this.state;return e.jsx("div",{className:"card",children:e.jsx("div",{className:"card-body",children:e.jsxs("div",{className:"input-group",children:[e.jsx("label",{htmlFor:"newGroupName",className:"sr-only",children:r("new_group_name")}),e.jsx("input",{onChange:this.changeHandler,value:s,required:!0,type:"text",name:"newGroupName",className:"form-control",id:"newGroupName",placeholder:r("new_group_name_placeholder")}),e.jsx("label",{htmlFor:"newGroupName",className:"sr-only",children:r("new_group_id")}),e.jsx("input",{onChange:this.changeHandler,value:a===void 0?"":a,type:"number",name:"newGroupId",className:"form-control",id:"newGroupId",placeholder:r("new_group_id_placeholder")}),e.jsx(i,{onClick:this.onGroupCreateSubmit,className:"btn btn-primary form-control",children:r("create_group")})]})})})}render(){const{groups:r,removeGroup:s,renameGroup:a}=this.props;return e.jsxs(e.Fragment,{children:[this.renderGroupCreationForm(),e.jsx(C,{groups:r,removeGroup:s,renameGroup:a})]})}}const I=["groups","devices","deviceStates","bridgeInfo"],M=j("groups")(N(I,G)(_));export{M as ConnectedGroupsPage,_ as GroupsPage};
1
+ import{r as m,N as p,e as u,j as e,M as h,f as g,h as x,k as b,B as i,w as j,c as N,a as G,u as f,L as d}from"./index-e12d529d.js";import{T as y}from"./ReactTableCom-d74e8983.js";import"./persist-45b1730f.js";const v=t=>{const[r,s]=m.useState(t);return[r,o=>s({...r,[o.currentTarget.name]:o.currentTarget.value})]},w=p.create(t=>{const{name:r,onRename:s}=t,a=u(),[o,l]=v({friendlyName:r}),n=async()=>{await s(r,o.friendlyName),a.remove()};return e.jsxs(h,{isOpen:a.visible,children:[e.jsxs(g,{children:[e.jsx("h3",{children:"Rename group"}),e.jsx("small",{children:r})]}),e.jsx(x,{children:e.jsxs("div",{className:"mb-3",children:[e.jsx("label",{className:"form-label",children:"Friendly name"}),e.jsx("input",{name:"friendlyName",onChange:l,type:"text",className:"form-control",value:o.friendlyName})]})}),e.jsxs(b,{children:[e.jsx("button",{type:"button",className:"btn btn-secondary",onClick:a.remove,children:"Close"}),e.jsx("button",{type:"button",className:"btn btn-primary",onClick:n,children:"Save changes"})]})]})});function C(t){const{t:r}=f(["groups"]),{groups:s,removeGroup:a,renameGroup:o}=t,l=[{id:"group_id",Header:r("group_id"),accessor:n=>n.id,Cell:({row:{original:n}})=>e.jsx(d,{to:`/group/${n.id}`,children:n.id})},{id:"friendly_name",Header:r("group_name"),accessor:n=>n.friendly_name,Cell:({row:{original:n}})=>e.jsx(d,{to:`/group/${n.id}`,children:n.friendly_name})},{id:"members",Header:r("group_members"),accessor:n=>n.members.length??0},{id:"scenes",Header:r("group_scenes"),accessor:n=>{var c;return((c=n.scenes)==null?void 0:c.length)??0}},{Header:"",id:"actions",Cell:({row:{original:n}})=>e.jsxs("div",{className:"btn-group float-right btn-group-sm",role:"group",children:[e.jsx(i,{className:"btn btn-primary",onClick:()=>p.show(w,{name:n.friendly_name,onRename:o}),title:r("rename_group"),children:e.jsx("i",{className:"fa fa-edit"})}),e.jsx(i,{prompt:!0,title:r("remove_group"),item:n.friendly_name,onClick:a,className:"btn btn-danger",children:e.jsx("i",{className:"fa fa-trash"})})]})}];return e.jsx("div",{className:"card",children:e.jsx(y,{id:"groups",columns:l,data:s})})}class _ extends m.Component{constructor(){super(...arguments),this.state={newGroupName:"",newGroupId:void 0},this.changeHandler=r=>{const{name:s,value:a}=r.target;this.setState({[s]:a})},this.onGroupCreateSubmit=()=>{const{newGroupName:r,newGroupId:s}=this.state,{createGroup:a}=this.props;a(r,s)},this.renameGroup=(r,s)=>{const{renameGroup:a}=this.props;a(r,s)}}renderGroupCreationForm(){const{t:r}=this.props,{newGroupName:s,newGroupId:a}=this.state;return e.jsx("div",{className:"card",children:e.jsx("div",{className:"card-body",children:e.jsxs("div",{className:"input-group",children:[e.jsx("label",{htmlFor:"newGroupName",className:"sr-only",children:r("new_group_name")}),e.jsx("input",{onChange:this.changeHandler,value:s,required:!0,type:"text",name:"newGroupName",className:"form-control",id:"newGroupName",placeholder:r("new_group_name_placeholder")}),e.jsx("label",{htmlFor:"newGroupName",className:"sr-only",children:r("new_group_id")}),e.jsx("input",{onChange:this.changeHandler,value:a===void 0?"":a,type:"number",name:"newGroupId",className:"form-control",id:"newGroupId",placeholder:r("new_group_id_placeholder")}),e.jsx(i,{onClick:this.onGroupCreateSubmit,className:"btn btn-primary form-control",children:r("create_group")})]})})})}render(){const{groups:r,removeGroup:s,renameGroup:a}=this.props;return e.jsxs(e.Fragment,{children:[this.renderGroupCreationForm(),e.jsx(C,{groups:r,removeGroup:s,renameGroup:a})]})}}const I=["groups","devices","deviceStates","bridgeInfo"],M=j("groups")(N(I,G)(_));export{M as ConnectedGroupsPage,_ as GroupsPage};
Binary file
@@ -1 +1 @@
1
- import{u as g,l as D,j as i,r as j,L as x,g as w,d as f,c as C,a as h,w as k,R as S,i as H}from"./index-16e319d7.js";import{V as E,M as L}from"./vendor-links-6df665d0.js";import{L as T,D as q,P as F}from"./index-cfdcdcf7.js";import{i as M,A as N,D as P}from"./Availability-e3f34491.js";import{T as A}from"./ReactTableCom-c5fa0b55.js";import{D as I}from"./DeviceImage-b0ce2953.js";import{D as R}from"./DEVICES_GLOBAL_NAME-6620c611.js";import"./powerSourceTypeToTranslationKey-452dac81.js";import"./persist-2803de70.js";import"./index-9d70ff17.js";const V={"action-column":"_action-column_1729o_1","device-pic":"_device-pic_1729o_8","device-image":"_device-image_1729o_14"};function B(t){const{data:l,lastSeenType:o,availabilityFeatureEnabled:r,homeassistantEnabled:d,setDeviceDescription:y}=t,{renameDevice:c,removeDevice:m,configureDevice:v,interviewDevice:u}=t,{t:s}=g(["zigbee","common","avaliability"]),b=o!=="disable"?[{id:"last_seen",Header:s("last_seen"),accessor:({state:e})=>{var a;return(a=D(e,o))==null?void 0:a.getTime()},Cell:({row:{original:{state:e}}})=>i.jsx(T,{state:e,lastSeenType:o})}]:[],_=r?[{id:"availability",Header:s("avaliability:avaliability"),accessor:({availabilityState:e})=>M(e)?e:e.state,Cell:({row:{original:{availabilityState:e,availabilityEnabledForDevice:a,disabled:n}}})=>i.jsx(N,{disabled:n,availability:e,availabilityEnabledForDevice:a})}]:[],p=j.useMemo(()=>[{id:"pic",Header:s("pic"),Cell:({row:{original:{device:e,state:a,disabled:n}}})=>i.jsx(I,{className:V["device-image"],device:e,deviceStatus:a,disabled:n}),accessor:e=>e,disableSortBy:!0},{id:"friendly_name",Header:s("friendly_name"),accessor:({device:e})=>[e.friendly_name,e.description].join(" "),Cell:({row:{original:{device:e}}})=>i.jsxs(i.Fragment,{children:[i.jsx(x,{to:w(e.ieee_address),children:e.friendly_name}),i.jsx("small",{className:"d-block",children:e.description})]})},{id:"ieee_address",Header:s("ieee_address"),accessor:({device:e})=>[e.ieee_address,f(e.network_address,4)].join(" "),Cell:({row:{original:{device:e}}})=>i.jsxs(i.Fragment,{children:[i.jsx("div",{children:e.ieee_address}),i.jsx("div",{children:i.jsxs("abbr",{title:`${s("network_address_hex")} (${s("network_address_dec")}: ${e.network_address})`,children:["(",f(e.network_address,4),")"]})})]})},{id:"manufacturer",Header:s("manufacturer"),accessor:({device:e})=>{var a;return[(a=e.definition)==null?void 0:a.vendor,e.manufacturer].join(" ")},Cell:({row:{original:{device:e}}})=>i.jsx(E,{device:e})},{id:"model",Header:s("model"),accessor:({device:e})=>{var a;return[(a=e.definition)==null?void 0:a.model,e.model_id].join(" ")},Cell:({row:{original:{device:e}}})=>i.jsx(L,{device:e})},{id:"lqi",Header:s("lqi"),accessor:({state:e})=>e.linkquality,Cell:({row:{original:{state:e}}})=>i.jsx(q,{value:e.linkquality,name:"linkquality"})},...b,..._,{id:"power",Header:s("power"),accessor:({state:e,device:a})=>{var n;return[e.battery,(n=a.definition)==null?void 0:n.power].join(" ")},Cell:({row:{original:{state:e,device:a}}})=>i.jsx(F,{device:a,deviceState:e})},{id:"controls",Header:"",Cell:({row:{original:{device:e,state:a}}})=>i.jsx(P,{device:e,state:a,homeassistantEnabled:d,renameDevice:c,removeDevice:m,configureDevice:v,setDeviceDescription:y,interviewDevice:u}),disableSortBy:!0}],[b,_,s,d,c,m,v,u]);return i.jsx("div",{className:"card",children:i.jsx("div",{className:"table-responsive",children:i.jsx(A,{id:R,columns:p,data:l})})})}function $(t){const{devices:l,deviceStates:o,bridgeInfo:{config:r},availability:d}=t,{renameDevice:y,removeDevice:c,configureDevice:m,setDeviceDescription:v,interviewDevice:u}=t,s=!!r.availability,b=!!(r!=null&&r.homeassistant),_=()=>Object.values(l).filter(e=>e.type!=="Coordinator").map(e=>{var n;const a=o[e.friendly_name]??{};return{id:e.friendly_name,disabled:H(e,r),device:e,state:a,availabilityState:d[e.friendly_name]??"offline",availabilityEnabledForDevice:((n=r.devices[e.ieee_address])==null?void 0:n.availability)!==!1}}),p=S.useMemo(()=>_(),[l,o]);return i.jsx(B,{data:p,lastSeenType:r.advanced.last_seen,availabilityFeatureEnabled:s,homeassistantEnabled:b,renameDevice:y,removeDevice:c,configureDevice:m,setDeviceDescription:v,interviewDevice:u})}const z=["devices","deviceStates","bridgeInfo","availability"],ee=C(z,h)(k(["zigbee","common"])($));export{ee as ConnectedZigbeePage};
1
+ import{u as g,l as D,j as i,r as j,L as x,g as w,d as f,c as C,a as h,w as k,R as S,i as H}from"./index-e12d529d.js";import{V as E,M as L}from"./vendor-links-f7b4e675.js";import{L as T,D as q,P as F}from"./index-064644be.js";import{i as M,A as N,D as P}from"./Availability-003eccb5.js";import{T as A}from"./ReactTableCom-d74e8983.js";import{D as I}from"./DeviceImage-3b4915d4.js";import{D as R}from"./DEVICES_GLOBAL_NAME-6620c611.js";import"./powerSourceTypeToTranslationKey-452dac81.js";import"./persist-45b1730f.js";import"./index-80df36d1.js";const V={"action-column":"_action-column_1729o_1","device-pic":"_device-pic_1729o_8","device-image":"_device-image_1729o_14"};function B(t){const{data:l,lastSeenType:o,availabilityFeatureEnabled:r,homeassistantEnabled:d,setDeviceDescription:y}=t,{renameDevice:c,removeDevice:m,configureDevice:v,interviewDevice:u}=t,{t:s}=g(["zigbee","common","avaliability"]),b=o!=="disable"?[{id:"last_seen",Header:s("last_seen"),accessor:({state:e})=>{var a;return(a=D(e,o))==null?void 0:a.getTime()},Cell:({row:{original:{state:e}}})=>i.jsx(T,{state:e,lastSeenType:o})}]:[],_=r?[{id:"availability",Header:s("avaliability:avaliability"),accessor:({availabilityState:e})=>M(e)?e:e.state,Cell:({row:{original:{availabilityState:e,availabilityEnabledForDevice:a,disabled:n}}})=>i.jsx(N,{disabled:n,availability:e,availabilityEnabledForDevice:a})}]:[],p=j.useMemo(()=>[{id:"pic",Header:s("pic"),Cell:({row:{original:{device:e,state:a,disabled:n}}})=>i.jsx(I,{className:V["device-image"],device:e,deviceStatus:a,disabled:n}),accessor:e=>e,disableSortBy:!0},{id:"friendly_name",Header:s("friendly_name"),accessor:({device:e})=>[e.friendly_name,e.description].join(" "),Cell:({row:{original:{device:e}}})=>i.jsxs(i.Fragment,{children:[i.jsx(x,{to:w(e.ieee_address),children:e.friendly_name}),i.jsx("small",{className:"d-block",children:e.description})]})},{id:"ieee_address",Header:s("ieee_address"),accessor:({device:e})=>[e.ieee_address,f(e.network_address,4)].join(" "),Cell:({row:{original:{device:e}}})=>i.jsxs(i.Fragment,{children:[i.jsx("div",{children:e.ieee_address}),i.jsx("div",{children:i.jsxs("abbr",{title:`${s("network_address_hex")} (${s("network_address_dec")}: ${e.network_address})`,children:["(",f(e.network_address,4),")"]})})]})},{id:"manufacturer",Header:s("manufacturer"),accessor:({device:e})=>{var a;return[(a=e.definition)==null?void 0:a.vendor,e.manufacturer].join(" ")},Cell:({row:{original:{device:e}}})=>i.jsx(E,{device:e})},{id:"model",Header:s("model"),accessor:({device:e})=>{var a;return[(a=e.definition)==null?void 0:a.model,e.model_id].join(" ")},Cell:({row:{original:{device:e}}})=>i.jsx(L,{device:e})},{id:"lqi",Header:s("lqi"),accessor:({state:e})=>e.linkquality,Cell:({row:{original:{state:e}}})=>i.jsx(q,{value:e.linkquality,name:"linkquality"})},...b,..._,{id:"power",Header:s("power"),accessor:({state:e,device:a})=>{var n;return[e.battery,(n=a.definition)==null?void 0:n.power].join(" ")},Cell:({row:{original:{state:e,device:a}}})=>i.jsx(F,{device:a,deviceState:e})},{id:"controls",Header:"",Cell:({row:{original:{device:e,state:a}}})=>i.jsx(P,{device:e,state:a,homeassistantEnabled:d,renameDevice:c,removeDevice:m,configureDevice:v,setDeviceDescription:y,interviewDevice:u}),disableSortBy:!0}],[b,_,s,d,c,m,v,u]);return i.jsx("div",{className:"card",children:i.jsx("div",{className:"table-responsive",children:i.jsx(A,{id:R,columns:p,data:l})})})}function $(t){const{devices:l,deviceStates:o,bridgeInfo:{config:r},availability:d}=t,{renameDevice:y,removeDevice:c,configureDevice:m,setDeviceDescription:v,interviewDevice:u}=t,s=!!r.availability,b=!!(r!=null&&r.homeassistant),_=()=>Object.values(l).filter(e=>e.type!=="Coordinator").map(e=>{var n;const a=o[e.friendly_name]??{};return{id:e.friendly_name,disabled:H(e,r),device:e,state:a,availabilityState:d[e.friendly_name]??"offline",availabilityEnabledForDevice:((n=r.devices[e.ieee_address])==null?void 0:n.availability)!==!1}}),p=S.useMemo(()=>_(),[l,o]);return i.jsx(B,{data:p,lastSeenType:r.advanced.last_seen,availabilityFeatureEnabled:s,homeassistantEnabled:b,renameDevice:y,removeDevice:c,configureDevice:m,setDeviceDescription:v,interviewDevice:u})}const z=["devices","deviceStates","bridgeInfo","availability"],ee=C(z,h)(k(["zigbee","common"])($));export{ee as ConnectedZigbeePage};
Binary file