zigbee2mqtt-frontend 0.9.9 → 0.9.11
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/CHANGELOG.md +18 -0
- package/dist/assets/{Availability-1675991e.js → Availability-a2b7a51f.js} +1 -1
- package/dist/assets/Availability-a2b7a51f.js.br +0 -0
- package/dist/assets/{CodeEditor-c575f886.js → CodeEditor-b23a3289.js} +1 -1
- package/dist/assets/CodeEditor-b23a3289.js.br +0 -0
- package/dist/assets/ConnectedDevicePage-db70b46c.js +1 -0
- package/dist/assets/ConnectedDevicePage-db70b46c.js.br +0 -0
- package/dist/assets/{ConnectedMap-ddb8578b.js → ConnectedMap-f7a47bfe.js} +1 -1
- package/dist/assets/ConnectedMap-f7a47bfe.js.br +0 -0
- package/dist/assets/{Dashboard-555d5c3d.js → Dashboard-fa284402.js} +1 -1
- package/dist/assets/Dashboard-fa284402.js.br +0 -0
- package/dist/assets/{DashboardDevice-df4f4d26.js → DashboardDevice-7f26eb7a.js} +1 -1
- package/dist/assets/DashboardDevice-7f26eb7a.js.br +0 -0
- package/dist/assets/DashboardFeatureWrapper-c9667093.js +1 -0
- package/dist/assets/DashboardFeatureWrapper-c9667093.js.br +0 -0
- package/dist/assets/DeviceImage-13438313.js +1 -0
- package/dist/assets/DeviceImage-13438313.js.br +0 -0
- package/dist/assets/{GroupPage-60b36e09.js → GroupPage-b62dfb82.js} +1 -1
- package/dist/assets/GroupPage-b62dfb82.js.br +0 -0
- package/dist/assets/{ReactTableCom-0d8dfb0d.js → ReactTableCom-e63749e2.js} +1 -1
- package/dist/assets/ReactTableCom-e63749e2.js.br +0 -0
- package/dist/assets/{RecallRemove-a69465e6.js → RecallRemove-1e1d5748.js} +1 -1
- package/dist/assets/RecallRemove-1e1d5748.js.br +0 -0
- package/dist/assets/_baseSet-5dbc5895.js +1 -0
- package/dist/assets/_getAllKeysIn-0f73aea7.js +1 -0
- package/dist/assets/{bootstrap-5.esm-406138fd.js → bootstrap-5.esm-b3cc6d63.js} +1 -1
- package/dist/assets/bootstrap-5.esm-b3cc6d63.js.br +0 -0
- package/dist/assets/{index-a014dc31.js → index-014b1245.js} +1 -1
- package/dist/assets/index-014b1245.js.br +0 -0
- package/dist/assets/{index-6de9b81e.js → index-1fe2167e.js} +1 -1
- package/dist/assets/index-1fe2167e.js.br +0 -0
- package/dist/assets/index-34d7f124.js +1 -0
- package/dist/assets/index-34d7f124.js.br +0 -0
- package/dist/assets/{index-b4211291.js → index-4a2a6b43.js} +24 -19
- package/dist/assets/index-4a2a6b43.js.br +0 -0
- package/dist/assets/{index-badf5c77.js → index-b707c8dd.js} +1 -1
- package/dist/assets/index-b707c8dd.js.br +0 -0
- package/dist/assets/index-d1904360.js +1 -0
- package/dist/assets/index-d1904360.js.br +0 -0
- package/dist/assets/index-e83199a6.js +1 -0
- package/dist/assets/index-e83199a6.js.br +0 -0
- package/dist/assets/{index-396be3e8.js → index-eb729d10.js} +1 -1
- package/dist/assets/index-eb729d10.js.br +0 -0
- package/dist/assets/{index-ee766018.js → index-edabe387.js} +1 -1
- package/dist/assets/{index-f0cd4fde.js → index-fc5f9751.js} +2 -2
- package/dist/assets/index-fc5f9751.js.br +0 -0
- package/dist/assets/{intersection-dea22c9a.js → intersection-c0dfbb17.js} +1 -1
- package/dist/assets/intersection-c0dfbb17.js.br +0 -0
- package/dist/assets/{isEqual-a79b9c3c.js → isEqual-15946d93.js} +1 -1
- package/dist/assets/{jszip.min-c0da592b.js → jszip.min-86dfeb61.js} +3 -3
- package/dist/assets/jszip.min-86dfeb61.js.br +0 -0
- package/dist/assets/{persist-f61b4a95.js → persist-78b1fd11.js} +1 -1
- package/dist/assets/persist-78b1fd11.js.br +0 -0
- package/dist/assets/{rjsf-translation-fields-bbb81f4b.js → rjsf-translation-fields-6667fb4e.js} +1 -1
- package/dist/assets/{spinner-71421514.js → spinner-30e189f3.js} +1 -1
- package/dist/assets/vendor-links-2dc2b811.js +1 -0
- package/dist/assets/vendor-links-2dc2b811.js.br +0 -0
- package/dist/index.html +1 -1
- package/dist/index.html.br +0 -0
- package/package.json +1 -1
- package/dist/assets/Availability-1675991e.js.br +0 -0
- package/dist/assets/CodeEditor-c575f886.js.br +0 -0
- package/dist/assets/ConnectedDevicePage-80930a69.js +0 -1
- package/dist/assets/ConnectedDevicePage-80930a69.js.br +0 -0
- package/dist/assets/ConnectedMap-ddb8578b.js.br +0 -0
- package/dist/assets/Dashboard-555d5c3d.js.br +0 -0
- package/dist/assets/DashboardDevice-df4f4d26.js.br +0 -0
- package/dist/assets/DashboardFeatureWrapper-b21835f0.js +0 -1
- package/dist/assets/DashboardFeatureWrapper-b21835f0.js.br +0 -0
- package/dist/assets/DeviceImage-15402848.js +0 -1
- package/dist/assets/DeviceImage-15402848.js.br +0 -0
- package/dist/assets/GroupPage-60b36e09.js.br +0 -0
- package/dist/assets/ReactTableCom-0d8dfb0d.js.br +0 -0
- package/dist/assets/RecallRemove-a69465e6.js.br +0 -0
- package/dist/assets/_baseSet-2cbec0ba.js +0 -1
- package/dist/assets/_getAllKeysIn-c12f79d2.js +0 -1
- package/dist/assets/bootstrap-5.esm-406138fd.js.br +0 -0
- package/dist/assets/index-396be3e8.js.br +0 -0
- package/dist/assets/index-638728a1.js +0 -1
- package/dist/assets/index-638728a1.js.br +0 -0
- package/dist/assets/index-6de9b81e.js.br +0 -0
- package/dist/assets/index-7373e9e9.js +0 -1
- package/dist/assets/index-7373e9e9.js.br +0 -0
- package/dist/assets/index-a014dc31.js.br +0 -0
- package/dist/assets/index-b4211291.js.br +0 -0
- package/dist/assets/index-badf5c77.js.br +0 -0
- package/dist/assets/index-f0cd4fde.js.br +0 -0
- package/dist/assets/index-fa0414ec.js +0 -1
- package/dist/assets/index-fa0414ec.js.br +0 -0
- package/dist/assets/intersection-dea22c9a.js.br +0 -0
- package/dist/assets/jszip.min-c0da592b.js.br +0 -0
- package/dist/assets/persist-f61b4a95.js.br +0 -0
- package/dist/assets/vendor-links-9edabbdf.js +0 -1
- package/dist/assets/vendor-links-9edabbdf.js.br +0 -0
@@ -1 +0,0 @@
|
|
1
|
-
import{a9 as t,aw as n,af as o,ag as y,aM as i,aq as v,aN as l,ao as u,ac as g,aO as p,aP as _}from"./index-b4211291.js";var P=t,f=n,b=Object.prototype,O=b.hasOwnProperty;function I(r,a,s){var e=r[a];(!(O.call(r,a)&&f(e,s))||s===void 0&&!(a in r))&&P(r,a,s)}var W=I;function A(r){var a=[];if(r!=null)for(var s in Object(r))a.push(s);return a}var K=A,c=o,h=y,m=K,w=Object.prototype,S=w.hasOwnProperty;function $(r){if(!c(r))return m(r);var a=h(r),s=[];for(var e in r)e=="constructor"&&(a||!S.call(r,e))||s.push(e);return s}var V=$,L=i,k=V,q=v;function G(r){return q(r)?L(r,!0):k(r)}var d=G,x=l,M=x(Object.getPrototypeOf,Object),N=M,z=u,B=N,C=g,D=p,E=Object.getOwnPropertySymbols,F=E?function(r){for(var a=[];r;)z(a,C(r)),r=B(r);return a}:D,H=F,J=_,Q=H,R=d;function T(r){return J(r,R,Q)}var X=T;export{W as _,H as a,N as b,X as c,d as k};
|
Binary file
|
Binary file
|
@@ -1 +0,0 @@
|
|
1
|
-
import{c as g,a as b,w as h,r as f,i as j,j as s,L as x,g as _,B as l,u as k,b as d,t as v}from"./index-b4211291.js";import{D as O}from"./DeviceImage-15402848.js";import{V as y,M as A,O as N}from"./vendor-links-9edabbdf.js";import{T as C}from"./ReactTableCom-0d8dfb0d.js";import"./index-ee766018.js";import"./persist-f61b4a95.js";const T={"device-image":"_device-image_29lej_1"},w=u=>{const{t:r}=k("ota"),{device:t,state:n,checkOTA:i,scheduleOTA:a,unscheduleOTA:m,updateOTA:p}=u,o=(n==null?void 0:n.update)??{};switch(o.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:`${o.progress}%`},children:[o.progress,"%"]})}),s.jsx("div",{children:r("remaining_time",{remaining:v(o.remaining)})})]});case"available":return s.jsxs("div",{className:"btn-group btn-group-sm",role:"group",children:[s.jsx(l,{className:"btn btn-danger btn-sm me-1",onClick:p,item:t.friendly_name,prompt:!0,children:r("update")}),s.jsx(l,{className:"btn btn-sm btn-info",onClick:a,item:t.friendly_name,title:r("schedule"),prompt:!0,children:s.jsx("i",{className:d("fa","fa-clock")})})]});case"scheduled":return s.jsxs("div",{className:"btn-group btn-group-sm",role:"group",children:[s.jsx(l,{className:"btn btn-primary btn-sm me-1",onClick:i,item:t.friendly_name,children:r("check")}),s.jsx(l,{className:d("btn","btn-sm","btn-danger"),onClick:m,item:t.friendly_name,title:r("scheduled"),prompt:!0,children:s.jsx("i",{className:d("fa","fa-clock")})})]});default:return s.jsxs("div",{className:"btn-group btn-group-sm",role:"group",children:[s.jsx(l,{className:"btn btn-primary btn-sm me-1",onClick:i,item:t.friendly_name,children:r("check")}),s.jsx(l,{className:d("btn","btn-sm","btn-info"),onClick:a,item:t.friendly_name,title:r("schedule"),prompt:!0,children:s.jsx("i",{className:d("fa","fa-clock")})})]})}};class D extends f.Component{constructor(){super(...arguments),this.checkAllOTA=()=>{const{checkOTA:r}=this.props;this.getAllOtaDevices().forEach(({device:n})=>r(n.friendly_name))}}getAllOtaDevices(){const{devices:r,deviceStates:t,bridgeInfo:{config:n}}=this.props;return Object.values(r).filter(i=>{var a;return((a=i==null?void 0:i.definition)==null?void 0:a.supports_ota)&&!j(i,n)}).map(i=>{const a=t[i.friendly_name]??{};return{id:i.friendly_name,device:i,state:a}})}render(){const{checkOTA:r,scheduleOTA:t,unscheduleOTA:n,updateOTA:i,t:a}=this.props,m={checkOTA:r,scheduleOTA:t,unscheduleOTA:n,updateOTA:i},p=this.getAllOtaDevices(),o=[{Header:a("zigbee:pic"),Cell:({row:{original:{device:e,state:c}}})=>s.jsx(O,{className:T["device-image"],device:e,deviceStatus:c,disabled:!1}),disableSortBy:!0},{Header:a("zigbee:friendly_name"),accessor:({device:e})=>e.friendly_name,Cell:({row:{original:{device:e}}})=>s.jsx(x,{to:_(e.ieee_address),children:e.friendly_name})},{Header:a("zigbee:manufacturer"),accessor:({device:e})=>{var c;return[e.manufacturer,(c=e.definition)==null?void 0:c.vendor].join(" ")},Cell:({row:{original:{device:e}}})=>s.jsx(y,{device:e})},{Header:a("zigbee:model"),accessor:({device:e})=>{var c;return[e.model_id,(c=e.definition)==null?void 0:c.model].join(" ")},Cell:({row:{original:{device:e}}})=>s.jsx(A,{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(N,{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:c}}})=>s.jsx(w,{device:e,state:c,...m})}];return s.jsx("div",{className:"card",children:s.jsx("div",{className:"table-responsive",children:s.jsx(C,{id:"otaDevices",columns:o,data:p,initialState:{sortBy:[{id:"check_all",desc:!1}]}})})})}}const H=["devices","deviceStates","bridgeInfo"],I=g(H,b)(h(["ota","zigbee","common"])(D));export{I as ConnectedOtaPage};
|
Binary file
|
Binary file
|
@@ -1 +0,0 @@
|
|
1
|
-
import{q as v,P as u,E as x,j as e,b,x as _,c as N,a as y,w as L,r as w,I as g}from"./index-b4211291.js";import{w as C,T as S}from"./bootstrap-5.esm-406138fd.js";import{_ as E}from"./_baseSet-2cbec0ba.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 P=T;const $=v(P);var D=E;function I(s,o,a){return s==null?s:D(s,o,a)}var K=I;const k=v(K),z={"hide-description":"_hide-description_19xm6_1"},A=C(S);function H(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={};k(h,t,i.formData),r(h)};return e.jsx(A,{schema:d,className:z["hide-description"],formData:n,onChange:l,children:e.jsx("div",{})})}const m="all",p=({text:s})=>e.jsx(e.Fragment,{children:s}),O=({text:s="",highlight:o=""})=>{if(!o.trim())return e.jsx(p,{text:s});const a=new RegExp(`(${$(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(O,{text:a.message,highlight:c})})]})}const q=[m,"debug","info","warning","error"],B=[100,200,500,1e3];class M extends w.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:q.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(H,{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:B.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 W=["logs","bridgeInfo"],G=N(W,y)(L(["logs","common"])(M)),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
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -1 +0,0 @@
|
|
1
|
-
import{q as N,v as S,u as T,j as t,w as _,r as y,B as u,o as C,c as D,a as z,x as F,F as I,y as O,z as q,A as B,C as A,b as K}from"./index-b4211291.js";import{_ as E,w as P,T as V,c as j}from"./bootstrap-5.esm-406138fd.js";import{T as R,D as M}from"./rjsf-translation-fields-bbb81f4b.js";import{p as L}from"./powerSourceTypeToTranslationKey-452dac81.js";import{S as $}from"./spinner-71421514.js";import{g as G}from"./index-ee766018.js";import"./_getAllKeysIn-c12f79d2.js";import"./isEqual-a79b9c3c.js";import"./intersection-dea22c9a.js";const U={"ui:order":["base_topic","server","user","password","client_id","version","ca","key","cert","reject_unauthorized","*"]},H={"ui:order":["port","adapter","disable_led","*"]},J={"ui:order":["port","host","*"]},Z={mqtt:U,serial:H,frontend:J};var Y=E,x=S;function W(a,e,s,n){return a==null?[]:(x(e)||(e=e==null?[]:[e]),s=n?void 0:s,x(s)||(s=s==null?[]:[s]),Y(a,e,s))}var Q=W;const X=N(Q);function ee(a){const{devices:e}=a,{t:s}=T(["stats","zigbee"]),n=Object.values(e).filter(i=>i.type!=="Coordinator"),r=n.length,o={byType:{},byPowerSource:{},byVendor:{},byModel:{}};n.forEach(i=>{o.byModel[i.model_id]=(o.byModel[i.model_id]||0)+1,o.byVendor[i.manufacturer]=(o.byVendor[i.manufacturer]||0)+1,o.byType[s(i.type)]=(o.byType[s(i.type)]||0)+1;const l=s("zigbee:"+L(i.power_source));o.byPowerSource[l]=(o.byPowerSource[l]||0)+1});const m=Object.entries(o).map(([i,l])=>t.jsx("li",{className:"list-group-item d-flex justify-content-between align-items-start",children:t.jsxs("div",{className:"ms-2 me-auto",children:[t.jsx("div",{className:"fw-bold",children:s(i)}),X(Object.entries(l),[([c,d])=>d],["desc"]).map(([c,d])=>t.jsxs("div",{children:[c,": ",d]},c))]})},i));return t.jsxs("ol",{className:"list-group list-group-numbered",children:[t.jsx("li",{className:"list-group-item d-flex justify-content-between align-items-start",children:t.jsx("div",{className:"ms-2 me-auto",children:t.jsxs("div",{className:"fw-bold",children:[s("total")," ",r]})})}),m]})}const te={access:"public",cache:""},se=["*.css"],ne="zigbee2mqtt-frontend",re="0.9.9",oe="GPL-3.0",ie={build:"vite build",preview:"vite preview",start:"vite dev",postversion:"git push && git push --tags",version:"conventional-changelog -p angular -i CHANGELOG.md -s && git add CHANGELOG.md",pretty:'prettier --write "./**/*.{js,jsx,tsx}"',postinstall:"husky install",prepublishOnly:"pinst --disable",postpublish:"pinst --enable","test:unit":"vitest","test:coverage":"vitest run --coverage","test:eslint":'eslint "./src/**/*.{js,jsx,tsx}"',"test:pretty":'prettier --check "./**/*.{js,jsx,tsx}"',"i18n:download":"node download_translations.js","i18n:trim":"node trim-locales.js"},ae=["dist/*"],ce={node:">=20.11"},le={"@codemirror/lang-javascript":"^6.2.2","@commitlint/cli":"~17.8.0","@commitlint/config-conventional":"~17.8.0","@ebay/nice-modal-react":"~1.2.13","@eslint/js":"^9.18.0","@fortawesome/fontawesome-free":"~6.6.0","@rjsf/bootstrap-5":"https://github.com/nurikk/fileshare/blob/main/rjsf-bootstrap-5-4.2.0.tgz?raw=true","@rjsf/core":"~4.2.3","@testing-library/jest-dom":"^6.3.0","@testing-library/react":"^14.1.2","@testing-library/user-event":"^14.5.2","@types/color-convert":"~2.0.1","@types/d3-drag":"~3.0.4","@types/d3-force":"~3.0.6","@types/d3-selection":"~3.0.7","@types/d3-zoom":"~3.0.5","@types/events":"~3.0.1","@types/file-saver":"~2.0.5","@types/json-schema":"~7.0.13","@types/lodash":"~4.17.0","@types/react":"~18.2.24","@types/react-dom":"~18.2.8","@types/react-router-dom":"~5.3.3","@types/react-table":"~7.7.16","@types/react-transition-group":"~4.4.7","@types/reconnectingwebsocket":"~1.0.8","@types/ws":"~8.5.6","@uiw/codemirror-theme-github":"^4.21.24","@uiw/react-codemirror":"^4.21.24","@vitejs/plugin-react":"~4.3.0","@vitest/coverage-v8":"^1.2.2",bootstrap:"~5.3.2",classnames:"~2.5.0","color-convert":"~2.0.1","conventional-changelog-cli":"~4.1.0","d3-drag":"~3.0.0","d3-force":"~3.0.0","d3-force-reuse":"~1.0.1","d3-selection":"~3.0.0","d3-zoom":"~3.0.0","deep-diff":"~1.0.2","deep-object-diff":"~1.1.9",eslint:"~9.18.0","eslint-config-prettier":"~10.0.1","eslint-plugin-react":"~7.37.4","eslint-plugin-react-refresh":"~0.4.18",events:"~3.3.0","file-saver":"~2.0.5",globals:"~15.14.0",husky:"~8.0.3",i18next:"~23.5.1","i18next-browser-languagedetector":"~7.1.0",jsdom:"^24.0.0",jszip:"~3.10.1",lodash:"~4.17.21",notyf:"~3.10.0",pinst:"~3.0.0",prettier:"~3.4.2",react:"~18.2.0","react-app-polyfill":"~3.0.0","react-bootstrap":"~2.10.0","react-css-theme-switcher":"~0.3.0","react-dom":"~18.2.0","react-i18next":"~13.5.0","react-image":"~4.1.0","react-notifications-component":"^4.0.1","react-router-dom":"~5.3.4","react-table":"~7.8.0","react-transition-group":"~4.4.5","reconnecting-websocket":"~4.4.0",sass:"~1.71.0",store2:"^2.14.2","timeago.js":"~4.0.2",typescript:"~5.2.2","typescript-eslint":"^8.21.0",unistore:"~3.5.2",vite:"~4.5.0","vite-plugin-compression":"~0.5.1","vite-plugin-html":"~3.2.0","vite-plugin-sass-dts":"~1.3.11",vitest:"^1.3.1",ws:"~8.17.0"},de="index.js",me={hooks:{"commit-msg":"commitlint -E HUSKY_GIT_PARAMS"}},pe={type:"git",url:"git+https://github.com/nurikk/zigbee2mqtt-frontend.git"},ue={url:"https://github.com/nurikk/zigbee2mqtt-frontend/issues"},ge="pnpm@10.5.2",he={onlyBuiltDependencies:["core-js","core-js-pure","esbuild"]},fe={private:!1,publishConfig:te,sideEffects:se,name:ne,version:re,license:oe,scripts:ie,eslintIgnore:ae,engines:ce,devDependencies:le,main:de,husky:me,repository:pe,bugs:ue,packageManager:ge,pnpm:he};function be(a){return new Promise((e,s)=>{const n=new FileReader;n.onloadend=()=>e(n.result),n.onerror=r=>s(r),n.readAsDataURL(a)})}async function ye(a){const e=await fetch(a);if(e.ok){const s=await e.blob();return be(s)}else return Promise.reject(e.status)}async function ve(a,e){for(const s of a)try{if(await e(s))return!0}catch{}return!1}function je(a){const[e,s]=y.useState("none"),{setDeviceOptions:n,t:r,devices:o}=a,[m,i]=y.useState({});async function l(c){if(i(p=>({...p,[c.ieee_address]:"init"})),!await ve([G],async p=>{const g=p(c),h=await ye(g);return await n(c.ieee_address,{icon:h}),i(f=>({...f,[c.ieee_address]:"done"})),!0}))throw new Error("Failed to localise image")}switch(y.useEffect(()=>{if(e=="start"){for(const c of Object.values(o).filter(d=>d.type!=="Coordinator"))l(c).catch(d=>{console.log("Error localising image",d),i(p=>({...p,[c.ieee_address]:"error"}))}).then();s("inprogress")}},[e]),e){case"none":return t.jsx(u,{className:"btn btn-primary d-block mt-2",onClick:()=>s("start"),children:r("localise_images")});case"inprogress":return t.jsx("div",{children:Object.values(o).map(c=>t.jsxs("div",{children:[c.friendly_name," ",m[c.ieee_address]]},c.ieee_address))});case"done":return t.jsx("div",{children:"done"})}return t.jsx("div",{children:"Unknown"})}const xe=_(["settings"])(je),ke=P(V),b="main",w=["groups","devices","device_options","ban","whitelist","map_options"],_e=["object","array"],k=(a,e={},s={})=>{e.required&&(e.required=e.required.filter(n=>a.includes(n)));for(const n of a)e.properties&&delete e.properties[n],delete s[n];return{schema:e,config:s}},we=[t.jsx("div",{className:"row pb-2",children:t.jsx("div",{className:"col",children:t.jsx("a",{target:"_blank",rel:"noopener noreferrer",href:"https://www.buymeacoffee.com/nurikk",children:t.jsx("img",{crossOrigin:"anonymous",src:"https://img.buymeacoffee.com/button-api/?text=Thanks for frontend&emoji=🍺&slug=nurikk&button_colour=FFDD00&font_colour=000000&font_family=Arial&outline_colour=000000&coffee_colour=ffffff"})})})},"nurikk"),t.jsx("div",{className:"row pb-2",children:t.jsx("div",{className:"col",children:t.jsx("a",{target:"_blank",rel:"noopener noreferrer",href:"https://www.buymeacoffee.com/koenkk",children:t.jsx("img",{crossOrigin:"anonymous",src:"https://img.buymeacoffee.com/button-api/?text=Thanks for zigbee2mqtt&emoji=☕&slug=koenkk&button_colour=FFDD00&font_colour=000000&font_family=Arial&outline_colour=000000&coffee_colour=ffffff"})})})},"koenkk")].sort(()=>Math.random()-.5),Ne=(a,e)=>_e.includes(e.type)&&!w.includes(a)||(e&&e.oneOf?e.oneOf.length>0:!1);class Se extends y.Component{constructor(){super(...arguments),this.state={keyName:b},this.settingsFormData={},this.downloadBackup=()=>{const{backup:e,bridgeInfo:s}=this.props,n=F(new Date).replace(/[\s_:]/g,"-"),r=`z2m-backup.${s.version}.${n}.zip`;I.saveAs(`data:application/zip;base64,${e}`,r)},this.addInstallCode=()=>{const{t:e,addInstallCode:s}=this.props,n=prompt(e("enter_install_code"));n&&s(n)},this.onSettingsSave=e=>{const{formData:s}=e,{updateBridgeConfig:n}=this.props,{keyName:r}=this.state,o=O(this.getSettingsInfo().currentConfig,s);n(r===b?o:{[r]:o})}}renderCategoriesTabs(){const{t:e}=this.props;return t.jsx("ul",{className:"nav nav-tabs",children:q.map(s=>t.jsx("li",{className:"nav-item",children:t.jsx(B,{className:"nav-link",activeClassName:"active",to:s.url,children:e(s.translationKey)})},s.url))})}render(){return t.jsxs("div",{className:"tab",children:[this.renderCategoriesTabs(),t.jsx("div",{className:"tab-content h-100 p-0 p-sm-3",children:t.jsx("div",{className:"tab-pane fade show active",children:this.renderSwitcher()})})]})}renderSwitcher(){const{match:e}=this.props,{tab:s}=e.params;switch(s){case"tools":return this.renderTools();case"bridge":return this.renderBridgeInfo();case"about":return this.renderAbout();case"settings":return this.renderSettings();case"donate":return this.renderDonate();case"translate":return this.renderTranslate();default:return t.jsx(A,{to:"/settings/settings"})}}renderTranslate(){const{t:e}=this.props;return t.jsx("div",{className:"p-3",children:t.jsxs("p",{children:[e("settings:translation_prompt")," ",t.jsx("a",{target:"_blank",rel:"noopener noreferrer",href:"https://poeditor.com/join/project?hash=Az88waAhPd",children:"POEditor"})]})})}renderAbout(){var l,c,d,p,g,h,f;const{bridgeInfo:e,devices:s,t:n}=this.props,o=((l=e.version)==null?void 0:l.match(/^\d+\.\d+\.\d+$/))===null?e.version:t.jsx("a",{target:"_blank",rel:"noopener noreferrer",href:`https://github.com/Koenkk/zigbee2mqtt/releases/tag/${e.version}`,children:e.version}),m=e.commit?t.jsxs(t.Fragment,{children:["commit:"," ",t.jsx("a",{target:"_blank",rel:"noopener noreferrer",href:`https://github.com/Koenkk/zigbee2mqtt/commit/${e.commit}`,children:e.commit})]}):null,i=[{translationKey:"zigbee2mqtt_version",content:t.jsxs(t.Fragment,{children:[o," ",m]})},{translationKey:"coordinator_type",content:t.jsx(t.Fragment,{children:((c=e.coordinator)==null?void 0:c.type)??n("common:unknown")})},{translationKey:"coordinator_revision",content:t.jsx(t.Fragment,{children:((p=(d=e.coordinator)==null?void 0:d.meta)==null?void 0:p.revision)??n("common:unknown")})},{translationKey:"coordinator_ieee_address",content:t.jsx(t.Fragment,{children:((g=e.coordinator)==null?void 0:g.ieee_address)??n("common:unknown")})},{translationKey:"frontend_version",content:fe.version},{translationKey:"zigbee_herdsman_converters_version",content:((h=e.zigbee_herdsman_converters)==null?void 0:h.version)??n("common:unknown")},{translationKey:"zigbee_herdsman_version",content:((f=e.zigbee_herdsman)==null?void 0:f.version)??n("common:unknown")},{translationKey:"stats",content:t.jsx(ee,{devices:s})}];return t.jsx("div",{className:"p-3",children:i.map(v=>t.jsxs("dl",{className:"row",children:[t.jsx("dt",{className:"col-sm-3",children:n(v.translationKey)}),t.jsx("dd",{className:"col-sm-9",children:v.content})]},v.translationKey))})}renderBridgeInfo(){const{bridgeInfo:e}=this.props;return t.jsx("div",{className:"p-3",children:t.jsx("pre",{children:JSON.stringify(e,null,4)})})}renderBackupControls(){const{backup:e,preparingBackup:s,requestBackup:n,t:r}=this.props;return s?t.jsx(u,{className:"btn btn-primary d-block mt-2 disabled",children:t.jsx($,{})}):e?t.jsx(u,{className:"btn btn-primary d-block mt-2",onClick:this.downloadBackup,children:r("download_z2m_backup")}):t.jsx(u,{className:"btn btn-primary d-block mt-2",onClick:n,children:r("request_z2m_backup")})}renderTools(){const{exportState:e,restartBridge:s,setDeviceOptions:n,devices:r,t:o}=this.props;return t.jsxs("div",{className:"p-3",children:[t.jsx(u,{className:"btn btn-primary d-block mt-2",onClick:e,children:o("download_state")}),t.jsx(u,{className:"btn btn-danger d-block mt-2",onClick:s,prompt:!0,children:o("restart_zigbee2mqtt")}),this.renderBackupControls(),t.jsx(u,{className:"btn btn-primary d-block mt-2",onClick:this.addInstallCode,children:o("add_install_code")}),t.jsx(xe,{setDeviceOptions:n,devices:r})]})}getSettingsTabs(){const{bridgeInfo:{config_schema:e={properties:{}}},t:s}=this.props,n=Object.entries(e.properties).filter(([r,o])=>Ne(r,o)).map(([r,o])=>({name:r,title:s(r,{defaultValue:o.title})}));return n.unshift({name:b,title:s("main",{defaultValue:"Main"})}),n}getSettingsInfo(){const{keyName:e}=this.state,{bridgeInfo:{config_schema:s,config:n}}=this.props;let r=k(w,j(s),j(n)),o=r.schema,m;if(e===b){const i=this.getSettingsTabs().map(l=>l.name);r=k(i,r.schema,r.config),o=r.schema,m=r.config}else m=r.config[e],r.schema.properties&&(o=r.schema.properties[e]);return{currentSchema:o,currentConfig:m}}renderSettingsTabs(){const{t:e}=this.props,s=this.getSettingsTabs(),{keyName:n}=this.state;return t.jsx("div",{className:"nav nav-pills",children:s.map(r=>t.jsx("li",{className:"nav-item",children:t.jsx("a",{className:K("nav-link",{"bg-primary active":n===r.name}),"aria-current":"page",href:"#",onClick:o=>{this.setState({keyName:r.name}),o.preventDefault()},children:e(r.name,{defaultValue:r.title})})},r.name))})}renderSettings(){const{keyName:e}=this.state,{currentSchema:s,currentConfig:n}=this.getSettingsInfo();return e in this.settingsFormData||(this.settingsFormData[e]=n),t.jsxs("div",{className:"tab",children:[this.renderSettingsTabs(),t.jsx("div",{className:"tab-content",children:t.jsx("div",{className:"tab-pane active",children:t.jsx(ke,{idPrefix:e,schema:s,formData:this.settingsFormData[e],onChange:r=>this.settingsFormData[e]=r.formData,onSubmit:this.onSettingsSave,uiSchema:Z[e],fields:{TitleField:R,DescriptionField:M}})})})]})}renderDonate(){const{t:e}=this.props,s=e("donation_text",{returnObjects:!0,defaultValue:[]});return t.jsxs("div",{className:"container-fluid",children:[s.map(n=>t.jsx("p",{children:n},n)),we]})}}const Te=C(Se),Ce=["bridgeInfo","missingTranslations","devices","backup","preparingBackup"],Ee=_(["settings","common"])(D(Ce,z)(Te));export{Ee as ConnectedSettingsPage};
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -1 +0,0 @@
|
|
1
|
-
import{u as m,j as r,r as f,G as u}from"./index-b4211291.js";const p=o=>{const e="[/| |:]",n=new RegExp(e,"g");return o.replace(n,"_")},b=o=>{const{t:e}=m("zigbee"),{device:n}=o;if(n.supported&&n.definition){const t=`https://www.zigbee2mqtt.io/supported-devices/#v=${encodeURIComponent(n.definition.vendor)}`;return r.jsx("a",{target:"_blank",rel:"noopener noreferrer",href:t,children:n.definition.vendor})}return r.jsx(f.Fragment,{children:e("unsupported")})},g=o=>{var s,a,l,d,c;const{device:e,anchor:n}=o;let t=e.model_id,i=u;if(e.supported&&e.definition){const h=[encodeURIComponent((a=(s=e.definition)==null?void 0:s.vendor)==null?void 0:a.toLowerCase()),encodeURIComponent((d=(l=e.definition)==null?void 0:l.model)==null?void 0:d.toLowerCase())].join("-");i=`https://www.zigbee2mqtt.io/devices/${encodeURIComponent(p((c=e.definition)==null?void 0:c.model))}.html#${encodeURIComponent(p(n||h))}`,t=e.definition.model}return r.jsx("a",{target:"_blank",rel:"noopener noreferrer",href:i,children:t})},v=o=>{var i,s,a,l;const{device:e}=o;let n="";const t=e.software_build_id;switch((i=e==null?void 0:e.definition)==null?void 0:i.vendor){case"IKEA":n="https://ww8.ikea.com/ikeahomesmart/releasenotes/releasenotes.html";break;case"Inovelli":n="https://help.inovelli.com/en/articles/8503774-what-is-the-latest-firmware-version-for-your-device#h_b74c1e7dc6";break;case"Philips":n=`https://www.philips-hue.com/en-us/support/release-notes/${(s=e.definition)!=null&&s.exposes.find(d=>d.type==="light")?"lamps":"accessories"}`;break;case"Ubisys":n=`https://www.ubisys.de/en/support/firmware/change-logs-${(l=(a=e.definition)==null?void 0:a.model)==null?void 0:l.replace(/[-]/g,"").toLowerCase()}/`;break}return n!=""?r.jsx("a",{target:"_blank",rel:"noopener noreferrer",href:n,children:t}):r.jsx(r.Fragment,{children:t})};export{g as M,v as O,b as V};
|
Binary file
|