zigbee2mqtt-frontend 0.6.161 → 0.6.162

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 (93) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/dist/assets/Availability-33e3e209.js +1 -0
  3. package/dist/assets/Availability-33e3e209.js.br +0 -0
  4. package/dist/assets/{CodeEditor-ee543824.js → CodeEditor-0379f927.js} +1 -1
  5. package/dist/assets/CodeEditor-0379f927.js.br +0 -0
  6. package/dist/assets/ConnectedDevicePage-9510d98d.js +1 -0
  7. package/dist/assets/ConnectedDevicePage-9510d98d.js.br +0 -0
  8. package/dist/assets/ConnectedMap-eacb48d7.js +1 -0
  9. package/dist/assets/ConnectedMap-eacb48d7.js.br +0 -0
  10. package/dist/assets/Dashboard-24db08b0.js +1 -0
  11. package/dist/assets/Dashboard-24db08b0.js.br +0 -0
  12. package/dist/assets/{DashboardDevice-c60201bb.js → DashboardDevice-0216e0f5.js} +1 -1
  13. package/dist/assets/DashboardDevice-0216e0f5.js.br +0 -0
  14. package/dist/assets/DashboardFeatureWrapper-735dbb7f.js +1 -0
  15. package/dist/assets/DashboardFeatureWrapper-735dbb7f.js.br +0 -0
  16. package/dist/assets/DeviceImage-1eac1b50.js +1 -0
  17. package/dist/assets/DeviceImage-1eac1b50.js.br +0 -0
  18. package/dist/assets/GroupPage-84e8eb90.js +1 -0
  19. package/dist/assets/GroupPage-84e8eb90.js.br +0 -0
  20. package/dist/assets/{ReactTableCom-5f5db069.js → ReactTableCom-a25763b2.js} +1 -1
  21. package/dist/assets/ReactTableCom-a25763b2.js.br +0 -0
  22. package/dist/assets/{RecallRemove-a3a43a56.js → RecallRemove-6919d02e.js} +1 -1
  23. package/dist/assets/RecallRemove-6919d02e.js.br +0 -0
  24. package/dist/assets/_baseSet-8cfc46df.js +1 -0
  25. package/dist/assets/index-023be162.js +1 -0
  26. package/dist/assets/index-023be162.js.br +0 -0
  27. package/dist/assets/{index-d5688308.js → index-11a18784.js} +1 -1
  28. package/dist/assets/index-11a18784.js.br +0 -0
  29. package/dist/assets/{index-e886b299.js → index-2226c145.js} +1 -1
  30. package/dist/assets/index-2226c145.js.br +0 -0
  31. package/dist/assets/index-33a8f69c.js +1 -0
  32. package/dist/assets/index-33a8f69c.js.br +0 -0
  33. package/dist/assets/{index-ef73b565.js → index-380d57dc.js} +2 -2
  34. package/dist/assets/index-380d57dc.js.br +0 -0
  35. package/dist/assets/index-6f526ed7.js +1 -0
  36. package/dist/assets/index-6f526ed7.js.br +0 -0
  37. package/dist/assets/{index-fb4a4614.js → index-6fd02931.js} +76 -68
  38. package/dist/assets/index-6fd02931.js.br +0 -0
  39. package/dist/assets/index-c79a4621.js +1 -0
  40. package/dist/assets/index-c79a4621.js.br +0 -0
  41. package/dist/assets/{persist-47ba9205.js → persist-203c6c60.js} +1 -1
  42. package/dist/assets/persist-203c6c60.js.br +0 -0
  43. package/dist/assets/{vendor-links-5c024fe8.js → vendor-links-5848ee9a.js} +1 -1
  44. package/dist/assets/vendor-links-5848ee9a.js.br +0 -0
  45. package/dist/index.html +1 -1
  46. package/dist/index.html.br +0 -0
  47. package/package.json +1 -1
  48. package/dist/assets/Availability-e91d3536.js +0 -1
  49. package/dist/assets/Availability-e91d3536.js.br +0 -0
  50. package/dist/assets/CodeEditor-ee543824.js.br +0 -0
  51. package/dist/assets/ConnectedDevicePage-59cf87e7.js +0 -1
  52. package/dist/assets/ConnectedDevicePage-59cf87e7.js.br +0 -0
  53. package/dist/assets/ConnectedMap-761cfd93.js +0 -1
  54. package/dist/assets/ConnectedMap-761cfd93.js.br +0 -0
  55. package/dist/assets/Dashboard-cc086107.js +0 -1
  56. package/dist/assets/Dashboard-cc086107.js.br +0 -0
  57. package/dist/assets/DashboardDevice-c60201bb.js.br +0 -0
  58. package/dist/assets/DashboardFeatureWrapper-ef543cb2.js +0 -1
  59. package/dist/assets/DashboardFeatureWrapper-ef543cb2.js.br +0 -0
  60. package/dist/assets/DeviceImage-a3fb91b8.js +0 -1
  61. package/dist/assets/DeviceImage-a3fb91b8.js.br +0 -0
  62. package/dist/assets/DeviceImage-da893e86.css +0 -1
  63. package/dist/assets/GroupPage-c4462a0b.js +0 -1
  64. package/dist/assets/GroupPage-c4462a0b.js.br +0 -0
  65. package/dist/assets/ReactTableCom-5f5db069.js.br +0 -0
  66. package/dist/assets/RecallRemove-a3a43a56.js.br +0 -0
  67. package/dist/assets/_baseSet-411f0b9b.js +0 -1
  68. package/dist/assets/_getAllKeysIn-d7fdca48.js +0 -1
  69. package/dist/assets/bootstrap-5.esm-54b60f6b.js +0 -11
  70. package/dist/assets/bootstrap-5.esm-54b60f6b.js.br +0 -0
  71. package/dist/assets/index-317fed81.js +0 -1
  72. package/dist/assets/index-317fed81.js.br +0 -0
  73. package/dist/assets/index-361b7a42.js +0 -1
  74. package/dist/assets/index-662e592d.js +0 -1
  75. package/dist/assets/index-662e592d.js.br +0 -0
  76. package/dist/assets/index-bbc0fbd3.js +0 -1
  77. package/dist/assets/index-bbc0fbd3.js.br +0 -0
  78. package/dist/assets/index-d5688308.js.br +0 -0
  79. package/dist/assets/index-dd5bd773.js +0 -1
  80. package/dist/assets/index-dd5bd773.js.br +0 -0
  81. package/dist/assets/index-e886b299.js.br +0 -0
  82. package/dist/assets/index-ef73b565.js.br +0 -0
  83. package/dist/assets/index-fb4a4614.js.br +0 -0
  84. package/dist/assets/index-ff79f9f4.js +0 -1
  85. package/dist/assets/index-ff79f9f4.js.br +0 -0
  86. package/dist/assets/intersection-fb9aff53.js +0 -1
  87. package/dist/assets/intersection-fb9aff53.js.br +0 -0
  88. package/dist/assets/isEqual-ddfc316d.js +0 -1
  89. package/dist/assets/persist-47ba9205.js.br +0 -0
  90. package/dist/assets/powerSourceTypeToTranslationKey-452dac81.js +0 -1
  91. package/dist/assets/rjsf-translation-fields-3aef875c.js +0 -1
  92. package/dist/assets/spinner-73379dc1.js +0 -1
  93. package/dist/assets/vendor-links-5c024fe8.js.br +0 -0
@@ -0,0 +1 @@
1
+ import{R as gt,o as on,p as Ft,q as an,r as et,j as S,b as wt,v as Bn,x as Hn,y as Re,S as Yn,B as De,w as Vn,c as Un,a as jn}from"./index-6fd02931.js";import{D as Gn}from"./DeviceImage-1eac1b50.js";const Ie={disabled:!1},un=gt.createContext(null);var ln=function(e){return e.scrollTop},Mt="unmounted",pt="exited",dt="entering",yt="entered",he="exiting",ct=function(t){on(e,t);function e(r,i){var s;s=t.call(this,r,i)||this;var o=i,a=o&&!o.isMounting?r.enter:r.appear,l;return s.appearStatus=null,r.in?a?(l=pt,s.appearStatus=dt):l=yt:r.unmountOnExit||r.mountOnEnter?l=Mt:l=pt,s.state={status:l},s.nextCallback=null,s}e.getDerivedStateFromProps=function(i,s){var o=i.in;return o&&s.status===Mt?{status:pt}:null};var n=e.prototype;return n.componentDidMount=function(){this.updateStatus(!0,this.appearStatus)},n.componentDidUpdate=function(i){var s=null;if(i!==this.props){var o=this.state.status;this.props.in?o!==dt&&o!==yt&&(s=dt):(o===dt||o===yt)&&(s=he)}this.updateStatus(!1,s)},n.componentWillUnmount=function(){this.cancelNextCallback()},n.getTimeouts=function(){var i=this.props.timeout,s,o,a;return s=o=a=i,i!=null&&typeof i!="number"&&(s=i.exit,o=i.enter,a=i.appear!==void 0?i.appear:o),{exit:s,enter:o,appear:a}},n.updateStatus=function(i,s){if(i===void 0&&(i=!1),s!==null)if(this.cancelNextCallback(),s===dt){if(this.props.unmountOnExit||this.props.mountOnEnter){var o=this.props.nodeRef?this.props.nodeRef.current:Ft.findDOMNode(this);o&&ln(o)}this.performEnter(i)}else this.performExit();else this.props.unmountOnExit&&this.state.status===pt&&this.setState({status:Mt})},n.performEnter=function(i){var s=this,o=this.props.enter,a=this.context?this.context.isMounting:i,l=this.props.nodeRef?[a]:[Ft.findDOMNode(this),a],u=l[0],c=l[1],h=this.getTimeouts(),f=a?h.appear:h.enter;if(!i&&!o||Ie.disabled){this.safeSetState({status:yt},function(){s.props.onEntered(u)});return}this.props.onEnter(u,c),this.safeSetState({status:dt},function(){s.props.onEntering(u,c),s.onTransitionEnd(f,function(){s.safeSetState({status:yt},function(){s.props.onEntered(u,c)})})})},n.performExit=function(){var i=this,s=this.props.exit,o=this.getTimeouts(),a=this.props.nodeRef?void 0:Ft.findDOMNode(this);if(!s||Ie.disabled){this.safeSetState({status:pt},function(){i.props.onExited(a)});return}this.props.onExit(a),this.safeSetState({status:he},function(){i.props.onExiting(a),i.onTransitionEnd(o.exit,function(){i.safeSetState({status:pt},function(){i.props.onExited(a)})})})},n.cancelNextCallback=function(){this.nextCallback!==null&&(this.nextCallback.cancel(),this.nextCallback=null)},n.safeSetState=function(i,s){s=this.setNextCallback(s),this.setState(i,s)},n.setNextCallback=function(i){var s=this,o=!0;return this.nextCallback=function(a){o&&(o=!1,s.nextCallback=null,i(a))},this.nextCallback.cancel=function(){o=!1},this.nextCallback},n.onTransitionEnd=function(i,s){this.setNextCallback(s);var o=this.props.nodeRef?this.props.nodeRef.current:Ft.findDOMNode(this),a=i==null&&!this.props.addEndListener;if(!o||a){setTimeout(this.nextCallback,0);return}if(this.props.addEndListener){var l=this.props.nodeRef?[this.nextCallback]:[o,this.nextCallback],u=l[0],c=l[1];this.props.addEndListener(u,c)}i!=null&&setTimeout(this.nextCallback,i)},n.render=function(){var i=this.state.status;if(i===Mt)return null;var s=this.props,o=s.children;s.in,s.mountOnEnter,s.unmountOnExit,s.appear,s.enter,s.exit,s.timeout,s.addEndListener,s.onEnter,s.onEntering,s.onEntered,s.onExit,s.onExiting,s.onExited,s.nodeRef;var a=an(s,["children","in","mountOnEnter","unmountOnExit","appear","enter","exit","timeout","addEndListener","onEnter","onEntering","onEntered","onExit","onExiting","onExited","nodeRef"]);return gt.createElement(un.Provider,{value:null},typeof o=="function"?o(i,a):gt.cloneElement(gt.Children.only(o),a))},e}(gt.Component);ct.contextType=un;ct.propTypes={};function mt(){}ct.defaultProps={in:!1,mountOnEnter:!1,unmountOnExit:!1,appear:!1,enter:!0,exit:!0,onEnter:mt,onEntering:mt,onEntered:mt,onExit:mt,onExiting:mt,onExited:mt};ct.UNMOUNTED=Mt;ct.EXITED=pt;ct.ENTERING=dt;ct.ENTERED=yt;ct.EXITING=he;const Wn=ct;function Kn(t,e){return t.classList?!!e&&t.classList.contains(e):(" "+(t.className.baseVal||t.className)+" ").indexOf(" "+e+" ")!==-1}function Qn(t,e){t.classList?t.classList.add(e):Kn(t,e)||(typeof t.className=="string"?t.className=t.className+" "+e:t.setAttribute("class",(t.className&&t.className.baseVal||"")+" "+e))}function ze(t,e){return t.replace(new RegExp("(^|\\s)"+e+"(?:\\s|$)","g"),"$1").replace(/\s+/g," ").replace(/^\s*|\s*$/g,"")}function Jn(t,e){t.classList?t.classList.remove(e):typeof t.className=="string"?t.className=ze(t.className,e):t.setAttribute("class",ze(t.className&&t.className.baseVal||"",e))}const Zn="_container_1a2bs_1",tr="_img_1a2bs_7",er="_node_1a2bs_12",nr="_link_1a2bs_17",rr="_linkLabel_1a2bs_22",ir="_links_1a2bs_34",sr="_nodes_1a2bs_38",or="_EndDevice_1a2bs_42",ar="_Coordinator_1a2bs_49",ur="_Router_1a2bs_57",lr="_BrokenLink_1a2bs_74",cr="_Coordinator2Router_1a2bs_78",fr="_Router2Coordinator_1a2bs_79",hr="_Router2Router_1a2bs_83",pr="_Coordinator2EndDevice_1a2bs_87",dr="_EndDevice2Coordinator_1a2bs_88",gr="_Router2EndDevice_1a2bs_92",vr="_EndDevice2Router_1a2bs_93",xr="_foreignObject_1a2bs_99",_r="_offline_1a2bs_105",mr="_controls_1a2bs_110",L={container:Zn,img:tr,node:er,link:nr,linkLabel:rr,links:ir,nodes:sr,EndDevice:or,Coordinator:ar,Router:ur,BrokenLink:lr,Coordinator2Router:cr,Router2Coordinator:fr,Router2Router:hr,Coordinator2EndDevice:pr,EndDevice2Coordinator:dr,Router2EndDevice:gr,EndDevice2Router:vr,foreignObject:xr,offline:_r,controls:mr};var pe="http://www.w3.org/1999/xhtml";const Le={svg:"http://www.w3.org/2000/svg",xhtml:pe,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function re(t){var e=t+="",n=e.indexOf(":");return n>=0&&(e=t.slice(0,n))!=="xmlns"&&(t=t.slice(n+1)),Le.hasOwnProperty(e)?{space:Le[e],local:t}:t}function yr(t){return function(){var e=this.ownerDocument,n=this.namespaceURI;return n===pe&&e.documentElement.namespaceURI===pe?e.createElement(t):e.createElementNS(n,t)}}function wr(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}function cn(t){var e=re(t);return(e.local?wr:yr)(e)}function br(){}function we(t){return t==null?br:function(){return this.querySelector(t)}}function Nr(t){typeof t!="function"&&(t=we(t));for(var e=this._groups,n=e.length,r=new Array(n),i=0;i<n;++i)for(var s=e[i],o=s.length,a=r[i]=new Array(o),l,u,c=0;c<o;++c)(l=s[c])&&(u=t.call(l,l.__data__,c,s))&&("__data__"in l&&(u.__data__=l.__data__),a[c]=u);return new W(r,this._parents)}function Er(t){return t==null?[]:Array.isArray(t)?t:Array.from(t)}function kr(){return[]}function fn(t){return t==null?kr:function(){return this.querySelectorAll(t)}}function Cr(t){return function(){return Er(t.apply(this,arguments))}}function Ar(t){typeof t=="function"?t=Cr(t):t=fn(t);for(var e=this._groups,n=e.length,r=[],i=[],s=0;s<n;++s)for(var o=e[s],a=o.length,l,u=0;u<a;++u)(l=o[u])&&(r.push(t.call(l,l.__data__,u,o)),i.push(l));return new W(r,i)}function hn(t){return function(){return this.matches(t)}}function pn(t){return function(e){return e.matches(t)}}var $r=Array.prototype.find;function Mr(t){return function(){return $r.call(this.children,t)}}function Sr(){return this.firstElementChild}function Tr(t){return this.select(t==null?Sr:Mr(typeof t=="function"?t:pn(t)))}var Rr=Array.prototype.filter;function Dr(){return Array.from(this.children)}function Ir(t){return function(){return Rr.call(this.children,t)}}function zr(t){return this.selectAll(t==null?Dr:Ir(typeof t=="function"?t:pn(t)))}function Lr(t){typeof t!="function"&&(t=hn(t));for(var e=this._groups,n=e.length,r=new Array(n),i=0;i<n;++i)for(var s=e[i],o=s.length,a=r[i]=[],l,u=0;u<o;++u)(l=s[u])&&t.call(l,l.__data__,u,s)&&a.push(l);return new W(r,this._parents)}function dn(t){return new Array(t.length)}function Or(){return new W(this._enter||this._groups.map(dn),this._parents)}function Kt(t,e){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=e}Kt.prototype={constructor:Kt,appendChild:function(t){return this._parent.insertBefore(t,this._next)},insertBefore:function(t,e){return this._parent.insertBefore(t,e)},querySelector:function(t){return this._parent.querySelector(t)},querySelectorAll:function(t){return this._parent.querySelectorAll(t)}};function Pr(t){return function(){return t}}function Xr(t,e,n,r,i,s){for(var o=0,a,l=e.length,u=s.length;o<u;++o)(a=e[o])?(a.__data__=s[o],r[o]=a):n[o]=new Kt(t,s[o]);for(;o<l;++o)(a=e[o])&&(i[o]=a)}function Fr(t,e,n,r,i,s,o){var a,l,u=new Map,c=e.length,h=s.length,f=new Array(c),x;for(a=0;a<c;++a)(l=e[a])&&(f[a]=x=o.call(l,l.__data__,a,e)+"",u.has(x)?i[a]=l:u.set(x,l));for(a=0;a<h;++a)x=o.call(t,s[a],a,s)+"",(l=u.get(x))?(r[a]=l,l.__data__=s[a],u.delete(x)):n[a]=new Kt(t,s[a]);for(a=0;a<c;++a)(l=e[a])&&u.get(f[a])===l&&(i[a]=l)}function qr(t){return t.__data__}function Br(t,e){if(!arguments.length)return Array.from(this,qr);var n=e?Fr:Xr,r=this._parents,i=this._groups;typeof t!="function"&&(t=Pr(t));for(var s=i.length,o=new Array(s),a=new Array(s),l=new Array(s),u=0;u<s;++u){var c=r[u],h=i[u],f=h.length,x=Hr(t.call(c,c&&c.__data__,u,r)),b=x.length,_=a[u]=new Array(b),g=o[u]=new Array(b),v=l[u]=new Array(f);n(c,h,_,g,v,x,e);for(var E=0,m=0,d,w;E<b;++E)if(d=_[E]){for(E>=m&&(m=E+1);!(w=g[m])&&++m<b;);d._next=w||null}}return o=new W(o,r),o._enter=a,o._exit=l,o}function Hr(t){return typeof t=="object"&&"length"in t?t:Array.from(t)}function Yr(){return new W(this._exit||this._groups.map(dn),this._parents)}function Vr(t,e,n){var r=this.enter(),i=this,s=this.exit();return typeof t=="function"?(r=t(r),r&&(r=r.selection())):r=r.append(t+""),e!=null&&(i=e(i),i&&(i=i.selection())),n==null?s.remove():n(s),r&&i?r.merge(i).order():i}function Ur(t){for(var e=t.selection?t.selection():t,n=this._groups,r=e._groups,i=n.length,s=r.length,o=Math.min(i,s),a=new Array(i),l=0;l<o;++l)for(var u=n[l],c=r[l],h=u.length,f=a[l]=new Array(h),x,b=0;b<h;++b)(x=u[b]||c[b])&&(f[b]=x);for(;l<i;++l)a[l]=n[l];return new W(a,this._parents)}function jr(){for(var t=this._groups,e=-1,n=t.length;++e<n;)for(var r=t[e],i=r.length-1,s=r[i],o;--i>=0;)(o=r[i])&&(s&&o.compareDocumentPosition(s)^4&&s.parentNode.insertBefore(o,s),s=o);return this}function Gr(t){t||(t=Wr);function e(h,f){return h&&f?t(h.__data__,f.__data__):!h-!f}for(var n=this._groups,r=n.length,i=new Array(r),s=0;s<r;++s){for(var o=n[s],a=o.length,l=i[s]=new Array(a),u,c=0;c<a;++c)(u=o[c])&&(l[c]=u);l.sort(e)}return new W(i,this._parents).order()}function Wr(t,e){return t<e?-1:t>e?1:t>=e?0:NaN}function Kr(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this}function Qr(){return Array.from(this)}function Jr(){for(var t=this._groups,e=0,n=t.length;e<n;++e)for(var r=t[e],i=0,s=r.length;i<s;++i){var o=r[i];if(o)return o}return null}function Zr(){let t=0;for(const e of this)++t;return t}function ti(){return!this.node()}function ei(t){for(var e=this._groups,n=0,r=e.length;n<r;++n)for(var i=e[n],s=0,o=i.length,a;s<o;++s)(a=i[s])&&t.call(a,a.__data__,s,i);return this}function ni(t){return function(){this.removeAttribute(t)}}function ri(t){return function(){this.removeAttributeNS(t.space,t.local)}}function ii(t,e){return function(){this.setAttribute(t,e)}}function si(t,e){return function(){this.setAttributeNS(t.space,t.local,e)}}function oi(t,e){return function(){var n=e.apply(this,arguments);n==null?this.removeAttribute(t):this.setAttribute(t,n)}}function ai(t,e){return function(){var n=e.apply(this,arguments);n==null?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,n)}}function ui(t,e){var n=re(t);if(arguments.length<2){var r=this.node();return n.local?r.getAttributeNS(n.space,n.local):r.getAttribute(n)}return this.each((e==null?n.local?ri:ni:typeof e=="function"?n.local?ai:oi:n.local?si:ii)(n,e))}function gn(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}function li(t){return function(){this.style.removeProperty(t)}}function ci(t,e,n){return function(){this.style.setProperty(t,e,n)}}function fi(t,e,n){return function(){var r=e.apply(this,arguments);r==null?this.style.removeProperty(t):this.style.setProperty(t,r,n)}}function hi(t,e,n){return arguments.length>1?this.each((e==null?li:typeof e=="function"?fi:ci)(t,e,n??"")):Et(this.node(),t)}function Et(t,e){return t.style.getPropertyValue(e)||gn(t).getComputedStyle(t,null).getPropertyValue(e)}function pi(t){return function(){delete this[t]}}function di(t,e){return function(){this[t]=e}}function gi(t,e){return function(){var n=e.apply(this,arguments);n==null?delete this[t]:this[t]=n}}function vi(t,e){return arguments.length>1?this.each((e==null?pi:typeof e=="function"?gi:di)(t,e)):this.node()[t]}function vn(t){return t.trim().split(/^|\s+/)}function be(t){return t.classList||new xn(t)}function xn(t){this._node=t,this._names=vn(t.getAttribute("class")||"")}xn.prototype={add:function(t){var e=this._names.indexOf(t);e<0&&(this._names.push(t),this._node.setAttribute("class",this._names.join(" ")))},remove:function(t){var e=this._names.indexOf(t);e>=0&&(this._names.splice(e,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(t){return this._names.indexOf(t)>=0}};function _n(t,e){for(var n=be(t),r=-1,i=e.length;++r<i;)n.add(e[r])}function mn(t,e){for(var n=be(t),r=-1,i=e.length;++r<i;)n.remove(e[r])}function xi(t){return function(){_n(this,t)}}function _i(t){return function(){mn(this,t)}}function mi(t,e){return function(){(e.apply(this,arguments)?_n:mn)(this,t)}}function yi(t,e){var n=vn(t+"");if(arguments.length<2){for(var r=be(this.node()),i=-1,s=n.length;++i<s;)if(!r.contains(n[i]))return!1;return!0}return this.each((typeof e=="function"?mi:e?xi:_i)(n,e))}function wi(){this.textContent=""}function bi(t){return function(){this.textContent=t}}function Ni(t){return function(){var e=t.apply(this,arguments);this.textContent=e??""}}function Ei(t){return arguments.length?this.each(t==null?wi:(typeof t=="function"?Ni:bi)(t)):this.node().textContent}function ki(){this.innerHTML=""}function Ci(t){return function(){this.innerHTML=t}}function Ai(t){return function(){var e=t.apply(this,arguments);this.innerHTML=e??""}}function $i(t){return arguments.length?this.each(t==null?ki:(typeof t=="function"?Ai:Ci)(t)):this.node().innerHTML}function Mi(){this.nextSibling&&this.parentNode.appendChild(this)}function Si(){return this.each(Mi)}function Ti(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function Ri(){return this.each(Ti)}function Di(t){var e=typeof t=="function"?t:cn(t);return this.select(function(){return this.appendChild(e.apply(this,arguments))})}function Ii(){return null}function zi(t,e){var n=typeof t=="function"?t:cn(t),r=e==null?Ii:typeof e=="function"?e:we(e);return this.select(function(){return this.insertBefore(n.apply(this,arguments),r.apply(this,arguments)||null)})}function Li(){var t=this.parentNode;t&&t.removeChild(this)}function Oi(){return this.each(Li)}function Pi(){var t=this.cloneNode(!1),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}function Xi(){var t=this.cloneNode(!0),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}function Fi(t){return this.select(t?Xi:Pi)}function qi(t){return arguments.length?this.property("__data__",t):this.node().__data__}function Bi(t){return function(e){t.call(this,e,this.__data__)}}function Hi(t){return t.trim().split(/^|\s+/).map(function(e){var n="",r=e.indexOf(".");return r>=0&&(n=e.slice(r+1),e=e.slice(0,r)),{type:e,name:n}})}function Yi(t){return function(){var e=this.__on;if(e){for(var n=0,r=-1,i=e.length,s;n<i;++n)s=e[n],(!t.type||s.type===t.type)&&s.name===t.name?this.removeEventListener(s.type,s.listener,s.options):e[++r]=s;++r?e.length=r:delete this.__on}}}function Vi(t,e,n){return function(){var r=this.__on,i,s=Bi(e);if(r){for(var o=0,a=r.length;o<a;++o)if((i=r[o]).type===t.type&&i.name===t.name){this.removeEventListener(i.type,i.listener,i.options),this.addEventListener(i.type,i.listener=s,i.options=n),i.value=e;return}}this.addEventListener(t.type,s,n),i={type:t.type,name:t.name,value:e,listener:s,options:n},r?r.push(i):this.__on=[i]}}function Ui(t,e,n){var r=Hi(t+""),i,s=r.length,o;if(arguments.length<2){var a=this.node().__on;if(a){for(var l=0,u=a.length,c;l<u;++l)for(i=0,c=a[l];i<s;++i)if((o=r[i]).type===c.type&&o.name===c.name)return c.value}return}for(a=e?Vi:Yi,i=0;i<s;++i)this.each(a(r[i],e,n));return this}function yn(t,e,n){var r=gn(t),i=r.CustomEvent;typeof i=="function"?i=new i(e,n):(i=r.document.createEvent("Event"),n?(i.initEvent(e,n.bubbles,n.cancelable),i.detail=n.detail):i.initEvent(e,!1,!1)),t.dispatchEvent(i)}function ji(t,e){return function(){return yn(this,t,e)}}function Gi(t,e){return function(){return yn(this,t,e.apply(this,arguments))}}function Wi(t,e){return this.each((typeof e=="function"?Gi:ji)(t,e))}function*Ki(){for(var t=this._groups,e=0,n=t.length;e<n;++e)for(var r=t[e],i=0,s=r.length,o;i<s;++i)(o=r[i])&&(yield o)}var wn=[null];function W(t,e){this._groups=t,this._parents=e}function Ot(){return new W([[document.documentElement]],wn)}function Qi(){return this}W.prototype=Ot.prototype={constructor:W,select:Nr,selectAll:Ar,selectChild:Tr,selectChildren:zr,filter:Lr,data:Br,enter:Or,exit:Yr,join:Vr,merge:Ur,selection:Qi,order:jr,sort:Gr,call:Kr,nodes:Qr,node:Jr,size:Zr,empty:ti,each:ei,attr:ui,style:hi,property:vi,classed:yi,text:Ei,html:$i,raise:Si,lower:Ri,append:Di,insert:zi,remove:Oi,clone:Fi,datum:qi,on:Ui,dispatch:Wi,[Symbol.iterator]:Ki};function V(t){return typeof t=="string"?new W([[document.querySelector(t)]],[document.documentElement]):new W([[t]],wn)}function Ji(t){let e;for(;e=t.sourceEvent;)t=e;return t}function at(t,e){if(t=Ji(t),e===void 0&&(e=t.currentTarget),e){var n=e.ownerSVGElement||e;if(n.createSVGPoint){var r=n.createSVGPoint();return r.x=t.clientX,r.y=t.clientY,r=r.matrixTransform(e.getScreenCTM().inverse()),[r.x,r.y]}if(e.getBoundingClientRect){var i=e.getBoundingClientRect();return[t.clientX-i.left-e.clientLeft,t.clientY-i.top-e.clientTop]}}return[t.pageX,t.pageY]}const Zi=t=>{const{link:{linkType:e},id:n,...r}=t;return S.jsx("path",{id:n,className:wt(L.link,L[e]),strokeWidth:1,fill:"transparent",...r})},ts=t=>{const{link:e}=t;return S.jsx("text",{className:L.linkLabel,children:e.linkqualities.join("/")})},es=t=>{const{links:e}=t,n=et.useRef();return et.useLayoutEffect(()=>{V(n.current).selectAll(`.${L.link}`).data(e),V(n.current).selectAll(`.${L.linkLabel}`).data(e)},[e.length]),S.jsx("g",{ref:n,className:L.links,children:e.map(r=>{const i=`${r.source.ieeeAddr}-${r.target.ieeeAddr}-${r.linkType}`;return S.jsxs(et.Fragment,{children:[S.jsx(Zi,{id:`edgepath${i}`,link:r}),S.jsx(ts,{xlinkHref:`#edgepath${i}`,link:r})]},`fragment${i}`)})})},ns=es;var rs={value:()=>{}};function Pt(){for(var t=0,e=arguments.length,n={},r;t<e;++t){if(!(r=arguments[t]+"")||r in n||/[\s.]/.test(r))throw new Error("illegal type: "+r);n[r]=[]}return new Ut(n)}function Ut(t){this._=t}function is(t,e){return t.trim().split(/^|\s+/).map(function(n){var r="",i=n.indexOf(".");if(i>=0&&(r=n.slice(i+1),n=n.slice(0,i)),n&&!e.hasOwnProperty(n))throw new Error("unknown type: "+n);return{type:n,name:r}})}Ut.prototype=Pt.prototype={constructor:Ut,on:function(t,e){var n=this._,r=is(t+"",n),i,s=-1,o=r.length;if(arguments.length<2){for(;++s<o;)if((i=(t=r[s]).type)&&(i=ss(n[i],t.name)))return i;return}if(e!=null&&typeof e!="function")throw new Error("invalid callback: "+e);for(;++s<o;)if(i=(t=r[s]).type)n[i]=Oe(n[i],t.name,e);else if(e==null)for(i in n)n[i]=Oe(n[i],t.name,null);return this},copy:function(){var t={},e=this._;for(var n in e)t[n]=e[n].slice();return new Ut(t)},call:function(t,e){if((i=arguments.length-2)>0)for(var n=new Array(i),r=0,i,s;r<i;++r)n[r]=arguments[r+2];if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(s=this._[t],r=0,i=s.length;r<i;++r)s[r].value.apply(e,n)},apply:function(t,e,n){if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(var r=this._[t],i=0,s=r.length;i<s;++i)r[i].value.apply(e,n)}};function ss(t,e){for(var n=0,r=t.length,i;n<r;++n)if((i=t[n]).name===e)return i.value}function Oe(t,e,n){for(var r=0,i=t.length;r<i;++r)if(t[r].name===e){t[r]=rs,t=t.slice(0,r).concat(t.slice(r+1));break}return n!=null&&t.push({name:e,value:n}),t}const os={passive:!1},Rt={capture:!0,passive:!1};function ae(t){t.stopImmediatePropagation()}function bt(t){t.preventDefault(),t.stopImmediatePropagation()}function bn(t){var e=t.document.documentElement,n=V(t).on("dragstart.drag",bt,Rt);"onselectstart"in e?n.on("selectstart.drag",bt,Rt):(e.__noselect=e.style.MozUserSelect,e.style.MozUserSelect="none")}function Nn(t,e){var n=t.document.documentElement,r=V(t).on("dragstart.drag",null);e&&(r.on("click.drag",bt,Rt),setTimeout(function(){r.on("click.drag",null)},0)),"onselectstart"in n?r.on("selectstart.drag",null):(n.style.MozUserSelect=n.__noselect,delete n.__noselect)}const qt=t=>()=>t;function de(t,{sourceEvent:e,subject:n,target:r,identifier:i,active:s,x:o,y:a,dx:l,dy:u,dispatch:c}){Object.defineProperties(this,{type:{value:t,enumerable:!0,configurable:!0},sourceEvent:{value:e,enumerable:!0,configurable:!0},subject:{value:n,enumerable:!0,configurable:!0},target:{value:r,enumerable:!0,configurable:!0},identifier:{value:i,enumerable:!0,configurable:!0},active:{value:s,enumerable:!0,configurable:!0},x:{value:o,enumerable:!0,configurable:!0},y:{value:a,enumerable:!0,configurable:!0},dx:{value:l,enumerable:!0,configurable:!0},dy:{value:u,enumerable:!0,configurable:!0},_:{value:c}})}de.prototype.on=function(){var t=this._.on.apply(this._,arguments);return t===this._?this:t};function as(t){return!t.ctrlKey&&!t.button}function us(){return this.parentNode}function ls(t,e){return e??{x:t.x,y:t.y}}function cs(){return navigator.maxTouchPoints||"ontouchstart"in this}function fs(){var t=as,e=us,n=ls,r=cs,i={},s=Pt("start","drag","end"),o=0,a,l,u,c,h=0;function f(d){d.on("mousedown.drag",x).filter(r).on("touchstart.drag",g).on("touchmove.drag",v,os).on("touchend.drag touchcancel.drag",E).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function x(d,w){if(!(c||!t.call(this,d,w))){var M=m(this,e.call(this,d,w),d,w,"mouse");M&&(V(d.view).on("mousemove.drag",b,Rt).on("mouseup.drag",_,Rt),bn(d.view),ae(d),u=!1,a=d.clientX,l=d.clientY,M("start",d))}}function b(d){if(bt(d),!u){var w=d.clientX-a,M=d.clientY-l;u=w*w+M*M>h}i.mouse("drag",d)}function _(d){V(d.view).on("mousemove.drag mouseup.drag",null),Nn(d.view,u),bt(d),i.mouse("end",d)}function g(d,w){if(t.call(this,d,w)){var M=d.changedTouches,N=e.call(this,d,w),k=M.length,I,C;for(I=0;I<k;++I)(C=m(this,N,d,w,M[I].identifier,M[I]))&&(ae(d),C("start",d,M[I]))}}function v(d){var w=d.changedTouches,M=w.length,N,k;for(N=0;N<M;++N)(k=i[w[N].identifier])&&(bt(d),k("drag",d,w[N]))}function E(d){var w=d.changedTouches,M=w.length,N,k;for(c&&clearTimeout(c),c=setTimeout(function(){c=null},500),N=0;N<M;++N)(k=i[w[N].identifier])&&(ae(d),k("end",d,w[N]))}function m(d,w,M,N,k,I){var C=s.copy(),O=at(I||M,w),j,Y,p;if((p=n.call(d,new de("beforestart",{sourceEvent:M,target:f,identifier:k,active:o,x:O[0],y:O[1],dx:0,dy:0,dispatch:C}),N))!=null)return j=p.x-O[0]||0,Y=p.y-O[1]||0,function A(y,$,T){var R=O,D;switch(y){case"start":i[k]=A,D=o++;break;case"end":delete i[k],--o;case"drag":O=at(T||$,w),D=o;break}C.call(y,d,new de(y,{sourceEvent:$,subject:p,target:f,identifier:k,active:D,x:O[0]+j,y:O[1]+Y,dx:O[0]-R[0],dy:O[1]-R[1],dispatch:C}),N)}}return f.filter=function(d){return arguments.length?(t=typeof d=="function"?d:qt(!!d),f):t},f.container=function(d){return arguments.length?(e=typeof d=="function"?d:qt(d),f):e},f.subject=function(d){return arguments.length?(n=typeof d=="function"?d:qt(d),f):n},f.touchable=function(d){return arguments.length?(r=typeof d=="function"?d:qt(!!d),f):r},f.on=function(){var d=s.on.apply(s,arguments);return d===s?f:d},f.clickDistance=function(d){return arguments.length?(h=(d=+d)*d,f):Math.sqrt(h)},f}var hs=function(e,n){return e&&n&&n.split(" ").forEach(function(r){return Qn(e,r)})},ue=function(e,n){return e&&n&&n.split(" ").forEach(function(r){return Jn(e,r)})},Ne=function(t){on(e,t);function e(){for(var r,i=arguments.length,s=new Array(i),o=0;o<i;o++)s[o]=arguments[o];return r=t.call.apply(t,[this].concat(s))||this,r.appliedClasses={appear:{},enter:{},exit:{}},r.onEnter=function(a,l){var u=r.resolveArguments(a,l),c=u[0],h=u[1];r.removeClasses(c,"exit"),r.addClass(c,h?"appear":"enter","base"),r.props.onEnter&&r.props.onEnter(a,l)},r.onEntering=function(a,l){var u=r.resolveArguments(a,l),c=u[0],h=u[1],f=h?"appear":"enter";r.addClass(c,f,"active"),r.props.onEntering&&r.props.onEntering(a,l)},r.onEntered=function(a,l){var u=r.resolveArguments(a,l),c=u[0],h=u[1],f=h?"appear":"enter";r.removeClasses(c,f),r.addClass(c,f,"done"),r.props.onEntered&&r.props.onEntered(a,l)},r.onExit=function(a){var l=r.resolveArguments(a),u=l[0];r.removeClasses(u,"appear"),r.removeClasses(u,"enter"),r.addClass(u,"exit","base"),r.props.onExit&&r.props.onExit(a)},r.onExiting=function(a){var l=r.resolveArguments(a),u=l[0];r.addClass(u,"exit","active"),r.props.onExiting&&r.props.onExiting(a)},r.onExited=function(a){var l=r.resolveArguments(a),u=l[0];r.removeClasses(u,"exit"),r.addClass(u,"exit","done"),r.props.onExited&&r.props.onExited(a)},r.resolveArguments=function(a,l){return r.props.nodeRef?[r.props.nodeRef.current,a]:[a,l]},r.getClassNames=function(a){var l=r.props.classNames,u=typeof l=="string",c=u&&l?l+"-":"",h=u?""+c+a:l[a],f=u?h+"-active":l[a+"Active"],x=u?h+"-done":l[a+"Done"];return{baseClassName:h,activeClassName:f,doneClassName:x}},r}var n=e.prototype;return n.addClass=function(i,s,o){var a=this.getClassNames(s)[o+"ClassName"],l=this.getClassNames("enter"),u=l.doneClassName;s==="appear"&&o==="done"&&u&&(a+=" "+u),o==="active"&&i&&ln(i),a&&(this.appliedClasses[s][o]=a,hs(i,a))},n.removeClasses=function(i,s){var o=this.appliedClasses[s],a=o.base,l=o.active,u=o.done;this.appliedClasses[s]={},a&&ue(i,a),l&&ue(i,l),u&&ue(i,u)},n.render=function(){var i=this.props;i.classNames;var s=an(i,["classNames"]);return gt.createElement(Wn,Bn({},s,{onEnter:this.onEnter,onEntered:this.onEntered,onEntering:this.onEntering,onExit:this.onExit,onExiting:this.onExiting,onExited:this.onExited}))},e}(gt.Component);Ne.defaultProps={classNames:""};Ne.propTypes={};const ps=Ne,En=(t,e,n)=>{const s=Math.PI/t,o=60,a=t*2;let l="";for(let u=0;u<a;u++){const h=u%2==0?n:e,f=15+Math.cos(u*s+o)*h,x=15+Math.sin(u*s+o)*h;l+=`${f}, ${x} `}return l};class ds extends et.Component{constructor(){super(...arguments),this.state={hasBeenUpdated:!1},this.ref=et.createRef(),this.onMouseOut=()=>{const{node:e,onMouseOut:n}=this.props;this.ref&&this.ref.current&&n&&n(e,this.ref.current)},this.onMouseOver=()=>{const{node:e,onMouseOver:n}=this.props;this.ref&&this.ref.current&&n&&n(e,this.ref.current)},this.onDblClick=()=>{const{node:e,onDblClick:n}=this.props;this.ref&&this.ref.current&&n&&n(e,this.ref.current)}}componentDidUpdate(e){const{deviceState:n}=e,{deviceState:r}=this.props,i=Hn(n,r),{hasBeenUpdated:s}=this.state;i?s&&this.setState({hasBeenUpdated:!1}):this.setState({hasBeenUpdated:!0})}componentDidMount(){const{current:e}=this.ref,{node:n}=this.props;V(e).data([n])}render(){const{hasBeenUpdated:e}=this.state,{node:n,deviceState:r,device:i,availability:s}=this.props,{onMouseOver:o,onMouseOut:a,onDblClick:l}=this,u=n.type,c=wt(L.node,L[u],{[L.offline]:s==="offline"});return S.jsxs("g",{className:c,ref:this.ref,onMouseOver:o,onMouseOut:a,onDoubleClick:l,children:[n.type==="Coordinator"?S.jsxs(S.Fragment,{children:[S.jsx("circle",{cx:15,cy:16,r:24,fill:"#fff",stroke:"blue",strokeWidth:1}),S.jsx("polygon",{stroke:"blue",strokeWidth:1,points:En(5,5,14)})]}):S.jsxs(S.Fragment,{children:[S.jsx(ps,{in:e,timeout:200,classNames:"stroke-blink",children:S.jsx("circle",{"data-foo":r==null?void 0:r.last_seen,cx:16,cy:17,r:24,fill:"#fff",stroke:"blue",strokeWidth:1})}),S.jsx(Gn,{type:"svg",width:32,disabled:!1,height:32,device:i,className:`${L.img}`})]}),S.jsx("text",{x:45,y:25,children:n.friendlyName})]})}}class gs extends et.Component{constructor(){super(...arguments),this.state={toggle:!1}}updateDrag(){const{simulation:e,root:n}=this.props,r=fs().on("start",(i,s)=>{i.active||e.alphaTarget(.3).restart(),s.fx=s.x,s.fy=s.y}).on("drag",({x:i,y:s},o)=>{o.fx=i,o.fy=s}).on("end",(i,s)=>{i.active||e.alphaTarget(0)});V(n).selectAll(`.${L.node}`).call(r)}componentDidMount(){this.updateDrag()}componentDidUpdate(){this.updateDrag()}render(){const{nodes:e,onMouseOut:n,onMouseOver:r,deviceStates:i,devices:s,availability:o}=this.props;return S.jsx("g",{className:L.nodes,children:e.map(a=>S.jsx(ds,{onMouseOut:n,onMouseOver:r,node:a,deviceState:i[a.friendlyName],device:s[a.ieeeAddr],availability:o[a.friendlyName]},a.ieeeAddr))})}}function vs(t,e){var n,r=1;t==null&&(t=0),e==null&&(e=0);function i(){var s,o=n.length,a,l=0,u=0;for(s=0;s<o;++s)a=n[s],l+=a.x,u+=a.y;for(l=(l/o-t)*r,u=(u/o-e)*r,s=0;s<o;++s)a=n[s],a.x-=l,a.y-=u}return i.initialize=function(s){n=s},i.x=function(s){return arguments.length?(t=+s,i):t},i.y=function(s){return arguments.length?(e=+s,i):e},i.strength=function(s){return arguments.length?(r=+s,i):r},i}function xs(t){const e=+this._x.call(null,t),n=+this._y.call(null,t);return kn(this.cover(e,n),e,n,t)}function kn(t,e,n,r){if(isNaN(e)||isNaN(n))return t;var i,s=t._root,o={data:r},a=t._x0,l=t._y0,u=t._x1,c=t._y1,h,f,x,b,_,g,v,E;if(!s)return t._root=o,t;for(;s.length;)if((_=e>=(h=(a+u)/2))?a=h:u=h,(g=n>=(f=(l+c)/2))?l=f:c=f,i=s,!(s=s[v=g<<1|_]))return i[v]=o,t;if(x=+t._x.call(null,s.data),b=+t._y.call(null,s.data),e===x&&n===b)return o.next=s,i?i[v]=o:t._root=o,t;do i=i?i[v]=new Array(4):t._root=new Array(4),(_=e>=(h=(a+u)/2))?a=h:u=h,(g=n>=(f=(l+c)/2))?l=f:c=f;while((v=g<<1|_)===(E=(b>=f)<<1|x>=h));return i[E]=s,i[v]=o,t}function _s(t){var e,n,r=t.length,i,s,o=new Array(r),a=new Array(r),l=1/0,u=1/0,c=-1/0,h=-1/0;for(n=0;n<r;++n)isNaN(i=+this._x.call(null,e=t[n]))||isNaN(s=+this._y.call(null,e))||(o[n]=i,a[n]=s,i<l&&(l=i),i>c&&(c=i),s<u&&(u=s),s>h&&(h=s));if(l>c||u>h)return this;for(this.cover(l,u).cover(c,h),n=0;n<r;++n)kn(this,o[n],a[n],t[n]);return this}function ms(t,e){if(isNaN(t=+t)||isNaN(e=+e))return this;var n=this._x0,r=this._y0,i=this._x1,s=this._y1;if(isNaN(n))i=(n=Math.floor(t))+1,s=(r=Math.floor(e))+1;else{for(var o=i-n||1,a=this._root,l,u;n>t||t>=i||r>e||e>=s;)switch(u=(e<r)<<1|t<n,l=new Array(4),l[u]=a,a=l,o*=2,u){case 0:i=n+o,s=r+o;break;case 1:n=i-o,s=r+o;break;case 2:i=n+o,r=s-o;break;case 3:n=i-o,r=s-o;break}this._root&&this._root.length&&(this._root=a)}return this._x0=n,this._y0=r,this._x1=i,this._y1=s,this}function ys(){var t=[];return this.visit(function(e){if(!e.length)do t.push(e.data);while(e=e.next)}),t}function ws(t){return arguments.length?this.cover(+t[0][0],+t[0][1]).cover(+t[1][0],+t[1][1]):isNaN(this._x0)?void 0:[[this._x0,this._y0],[this._x1,this._y1]]}function F(t,e,n,r,i){this.node=t,this.x0=e,this.y0=n,this.x1=r,this.y1=i}function bs(t,e,n){var r,i=this._x0,s=this._y0,o,a,l,u,c=this._x1,h=this._y1,f=[],x=this._root,b,_;for(x&&f.push(new F(x,i,s,c,h)),n==null?n=1/0:(i=t-n,s=e-n,c=t+n,h=e+n,n*=n);b=f.pop();)if(!(!(x=b.node)||(o=b.x0)>c||(a=b.y0)>h||(l=b.x1)<i||(u=b.y1)<s))if(x.length){var g=(o+l)/2,v=(a+u)/2;f.push(new F(x[3],g,v,l,u),new F(x[2],o,v,g,u),new F(x[1],g,a,l,v),new F(x[0],o,a,g,v)),(_=(e>=v)<<1|t>=g)&&(b=f[f.length-1],f[f.length-1]=f[f.length-1-_],f[f.length-1-_]=b)}else{var E=t-+this._x.call(null,x.data),m=e-+this._y.call(null,x.data),d=E*E+m*m;if(d<n){var w=Math.sqrt(n=d);i=t-w,s=e-w,c=t+w,h=e+w,r=x.data}}return r}function Ns(t){if(isNaN(c=+this._x.call(null,t))||isNaN(h=+this._y.call(null,t)))return this;var e,n=this._root,r,i,s,o=this._x0,a=this._y0,l=this._x1,u=this._y1,c,h,f,x,b,_,g,v;if(!n)return this;if(n.length)for(;;){if((b=c>=(f=(o+l)/2))?o=f:l=f,(_=h>=(x=(a+u)/2))?a=x:u=x,e=n,!(n=n[g=_<<1|b]))return this;if(!n.length)break;(e[g+1&3]||e[g+2&3]||e[g+3&3])&&(r=e,v=g)}for(;n.data!==t;)if(i=n,!(n=n.next))return this;return(s=n.next)&&delete n.next,i?(s?i.next=s:delete i.next,this):e?(s?e[g]=s:delete e[g],(n=e[0]||e[1]||e[2]||e[3])&&n===(e[3]||e[2]||e[1]||e[0])&&!n.length&&(r?r[v]=n:this._root=n),this):(this._root=s,this)}function Es(t){for(var e=0,n=t.length;e<n;++e)this.remove(t[e]);return this}function ks(){return this._root}function Cs(){var t=0;return this.visit(function(e){if(!e.length)do++t;while(e=e.next)}),t}function As(t){var e=[],n,r=this._root,i,s,o,a,l;for(r&&e.push(new F(r,this._x0,this._y0,this._x1,this._y1));n=e.pop();)if(!t(r=n.node,s=n.x0,o=n.y0,a=n.x1,l=n.y1)&&r.length){var u=(s+a)/2,c=(o+l)/2;(i=r[3])&&e.push(new F(i,u,c,a,l)),(i=r[2])&&e.push(new F(i,s,c,u,l)),(i=r[1])&&e.push(new F(i,u,o,a,c)),(i=r[0])&&e.push(new F(i,s,o,u,c))}return this}function $s(t){var e=[],n=[],r;for(this._root&&e.push(new F(this._root,this._x0,this._y0,this._x1,this._y1));r=e.pop();){var i=r.node;if(i.length){var s,o=r.x0,a=r.y0,l=r.x1,u=r.y1,c=(o+l)/2,h=(a+u)/2;(s=i[0])&&e.push(new F(s,o,a,c,h)),(s=i[1])&&e.push(new F(s,c,a,l,h)),(s=i[2])&&e.push(new F(s,o,h,c,u)),(s=i[3])&&e.push(new F(s,c,h,l,u))}n.push(r)}for(;r=n.pop();)t(r.node,r.x0,r.y0,r.x1,r.y1);return this}function Ms(t){return t[0]}function Ss(t){return arguments.length?(this._x=t,this):this._x}function Ts(t){return t[1]}function Rs(t){return arguments.length?(this._y=t,this):this._y}function Cn(t,e,n){var r=new Ee(e??Ms,n??Ts,NaN,NaN,NaN,NaN);return t==null?r:r.addAll(t)}function Ee(t,e,n,r,i,s){this._x=t,this._y=e,this._x0=n,this._y0=r,this._x1=i,this._y1=s,this._root=void 0}function Pe(t){for(var e={data:t.data},n=e;t=t.next;)n=n.next={data:t.data};return e}var B=Cn.prototype=Ee.prototype;B.copy=function(){var t=new Ee(this._x,this._y,this._x0,this._y0,this._x1,this._y1),e=this._root,n,r;if(!e)return t;if(!e.length)return t._root=Pe(e),t;for(n=[{source:e,target:t._root=new Array(4)}];e=n.pop();)for(var i=0;i<4;++i)(r=e.source[i])&&(r.length?n.push({source:r,target:e.target[i]=new Array(4)}):e.target[i]=Pe(r));return t};B.add=xs;B.addAll=_s;B.cover=ms;B.data=ys;B.extent=ws;B.find=bs;B.remove=Ns;B.removeAll=Es;B.root=ks;B.size=Cs;B.visit=As;B.visitAfter=$s;B.x=Ss;B.y=Rs;function G(t){return function(){return t}}function Qt(t){return(t()-.5)*1e-6}function Ds(t){return t.x+t.vx}function Is(t){return t.y+t.vy}function zs(t){var e,n,r,i=1,s=1;typeof t!="function"&&(t=G(t==null?1:+t));function o(){for(var u,c=e.length,h,f,x,b,_,g,v=0;v<s;++v)for(h=Cn(e,Ds,Is).visitAfter(a),u=0;u<c;++u)f=e[u],_=n[f.index],g=_*_,x=f.x+f.vx,b=f.y+f.vy,h.visit(E);function E(m,d,w,M,N){var k=m.data,I=m.r,C=_+I;if(k){if(k.index>f.index){var O=x-k.x-k.vx,j=b-k.y-k.vy,Y=O*O+j*j;Y<C*C&&(O===0&&(O=Qt(r),Y+=O*O),j===0&&(j=Qt(r),Y+=j*j),Y=(C-(Y=Math.sqrt(Y)))/Y*i,f.vx+=(O*=Y)*(C=(I*=I)/(g+I)),f.vy+=(j*=Y)*C,k.vx-=O*(C=1-C),k.vy-=j*C)}return}return d>x+C||M<x-C||w>b+C||N<b-C}}function a(u){if(u.data)return u.r=n[u.data.index];for(var c=u.r=0;c<4;++c)u[c]&&u[c].r>u.r&&(u.r=u[c].r)}function l(){if(e){var u,c=e.length,h;for(n=new Array(c),u=0;u<c;++u)h=e[u],n[h.index]=+t(h,u,e)}}return o.initialize=function(u,c){e=u,r=c,l()},o.iterations=function(u){return arguments.length?(s=+u,o):s},o.strength=function(u){return arguments.length?(i=+u,o):i},o.radius=function(u){return arguments.length?(t=typeof u=="function"?u:G(+u),l(),o):t},o}function Ls(t){return t.index}function Xe(t,e){var n=t.get(e);if(!n)throw new Error("node not found: "+e);return n}function Os(t){var e=Ls,n=h,r,i=G(30),s,o,a,l,u,c=1;t==null&&(t=[]);function h(g){return 1/Math.min(a[g.source.index],a[g.target.index])}function f(g){for(var v=0,E=t.length;v<c;++v)for(var m=0,d,w,M,N,k,I,C;m<E;++m)d=t[m],w=d.source,M=d.target,N=M.x+M.vx-w.x-w.vx||Qt(u),k=M.y+M.vy-w.y-w.vy||Qt(u),I=Math.sqrt(N*N+k*k),I=(I-s[m])/I*g*r[m],N*=I,k*=I,M.vx-=N*(C=l[m]),M.vy-=k*C,w.vx+=N*(C=1-C),w.vy+=k*C}function x(){if(o){var g,v=o.length,E=t.length,m=new Map(o.map((w,M)=>[e(w,M,o),w])),d;for(g=0,a=new Array(v);g<E;++g)d=t[g],d.index=g,typeof d.source!="object"&&(d.source=Xe(m,d.source)),typeof d.target!="object"&&(d.target=Xe(m,d.target)),a[d.source.index]=(a[d.source.index]||0)+1,a[d.target.index]=(a[d.target.index]||0)+1;for(g=0,l=new Array(E);g<E;++g)d=t[g],l[g]=a[d.source.index]/(a[d.source.index]+a[d.target.index]);r=new Array(E),b(),s=new Array(E),_()}}function b(){if(o)for(var g=0,v=t.length;g<v;++g)r[g]=+n(t[g],g,t)}function _(){if(o)for(var g=0,v=t.length;g<v;++g)s[g]=+i(t[g],g,t)}return f.initialize=function(g,v){o=g,u=v,x()},f.links=function(g){return arguments.length?(t=g,x(),f):t},f.id=function(g){return arguments.length?(e=g,f):e},f.iterations=function(g){return arguments.length?(c=+g,f):c},f.strength=function(g){return arguments.length?(n=typeof g=="function"?g:G(+g),b(),f):n},f.distance=function(g){return arguments.length?(i=typeof g=="function"?g:G(+g),_(),f):i},f}var kt=0,St=0,Ct=0,An=1e3,Jt,Tt,Zt=0,_t=0,ie=0,Dt=typeof performance=="object"&&performance.now?performance:Date,$n=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};function ke(){return _t||($n(Ps),_t=Dt.now()+ie)}function Ps(){_t=0}function te(){this._call=this._time=this._next=null}te.prototype=Ce.prototype={constructor:te,restart:function(t,e,n){if(typeof t!="function")throw new TypeError("callback is not a function");n=(n==null?ke():+n)+(e==null?0:+e),!this._next&&Tt!==this&&(Tt?Tt._next=this:Jt=this,Tt=this),this._call=t,this._time=n,ge()},stop:function(){this._call&&(this._call=null,this._time=1/0,ge())}};function Ce(t,e,n){var r=new te;return r.restart(t,e,n),r}function Xs(){ke(),++kt;for(var t=Jt,e;t;)(e=_t-t._time)>=0&&t._call.call(void 0,e),t=t._next;--kt}function Fe(){_t=(Zt=Dt.now())+ie,kt=St=0;try{Xs()}finally{kt=0,qs(),_t=0}}function Fs(){var t=Dt.now(),e=t-Zt;e>An&&(ie-=e,Zt=t)}function qs(){for(var t,e=Jt,n,r=1/0;e;)e._call?(r>e._time&&(r=e._time),t=e,e=e._next):(n=e._next,e._next=null,e=t?t._next=n:Jt=n);Tt=t,ge(r)}function ge(t){if(!kt){St&&(St=clearTimeout(St));var e=t-_t;e>24?(t<1/0&&(St=setTimeout(Fe,t-Dt.now()-ie)),Ct&&(Ct=clearInterval(Ct))):(Ct||(Zt=Dt.now(),Ct=setInterval(Fs,An)),kt=1,$n(Fe))}}function qe(t,e,n){var r=new te;return e=e==null?0:+e,r.restart(i=>{r.stop(),t(i+e)},e,n),r}const Bs=1664525,Hs=1013904223,Be=4294967296;function Ys(){let t=1;return()=>(t=(Bs*t+Hs)%Be)/Be}var Vs=10,Us=Math.PI*(3-Math.sqrt(5));function js(t){var e,n=1,r=.001,i=1-Math.pow(r,1/300),s=0,o=.6,a=new Map,l=Ce(h),u=Pt("tick","end"),c=Ys();t==null&&(t=[]);function h(){f(),u.call("tick",e),n<r&&(l.stop(),u.call("end",e))}function f(_){var g,v=t.length,E;_===void 0&&(_=1);for(var m=0;m<_;++m)for(n+=(s-n)*i,a.forEach(function(d){d(n)}),g=0;g<v;++g)E=t[g],E.fx==null?E.x+=E.vx*=o:(E.x=E.fx,E.vx=0),E.fy==null?E.y+=E.vy*=o:(E.y=E.fy,E.vy=0);return e}function x(){for(var _=0,g=t.length,v;_<g;++_){if(v=t[_],v.index=_,v.fx!=null&&(v.x=v.fx),v.fy!=null&&(v.y=v.fy),isNaN(v.x)||isNaN(v.y)){var E=Vs*Math.sqrt(.5+_),m=_*Us;v.x=E*Math.cos(m),v.y=E*Math.sin(m)}(isNaN(v.vx)||isNaN(v.vy))&&(v.vx=v.vy=0)}}function b(_){return _.initialize&&_.initialize(t,c),_}return x(),e={tick:f,restart:function(){return l.restart(h),e},stop:function(){return l.stop(),e},nodes:function(_){return arguments.length?(t=_,x(),a.forEach(b),e):t},alpha:function(_){return arguments.length?(n=+_,e):n},alphaMin:function(_){return arguments.length?(r=+_,e):r},alphaDecay:function(_){return arguments.length?(i=+_,e):+i},alphaTarget:function(_){return arguments.length?(s=+_,e):s},velocityDecay:function(_){return arguments.length?(o=1-_,e):1-o},randomSource:function(_){return arguments.length?(c=_,a.forEach(b),e):c},force:function(_,g){return arguments.length>1?(g==null?a.delete(_):a.set(_,b(g)),e):a.get(_)},find:function(_,g,v){var E=0,m=t.length,d,w,M,N,k;for(v==null?v=1/0:v*=v,E=0;E<m;++E)N=t[E],d=_-N.x,w=g-N.y,M=d*d+w*w,M<v&&(k=N,v=M);return k},on:function(_,g){return arguments.length>1?(u.on(_,g),e):u.on(_)}}}function Gs(t){var e=G(.1),n,r,i;typeof t!="function"&&(t=G(t==null?0:+t));function s(a){for(var l=0,u=n.length,c;l<u;++l)c=n[l],c.vx+=(i[l]-c.x)*r[l]*a}function o(){if(n){var a,l=n.length;for(r=new Array(l),i=new Array(l),a=0;a<l;++a)r[a]=isNaN(i[a]=+t(n[a],a,n))?0:+e(n[a],a,n)}}return s.initialize=function(a){n=a,o()},s.strength=function(a){return arguments.length?(e=typeof a=="function"?a:G(+a),o(),s):e},s.x=function(a){return arguments.length?(t=typeof a=="function"?a:G(+a),o(),s):t},s}function Ws(t){var e=G(.1),n,r,i;typeof t!="function"&&(t=G(t==null?0:+t));function s(a){for(var l=0,u=n.length,c;l<u;++l)c=n[l],c.vy+=(i[l]-c.y)*r[l]*a}function o(){if(n){var a,l=n.length;for(r=new Array(l),i=new Array(l),a=0;a<l;++a)r[a]=isNaN(i[a]=+t(n[a],a,n))?0:+e(n[a],a,n)}}return s.initialize=function(a){n=a,o()},s.strength=function(a){return arguments.length?(e=typeof a=="function"?a:G(+a),o(),s):e},s.y=function(a){return arguments.length?(t=typeof a=="function"?a:G(+a),o(),s):t},s}function He(t){return function(){return t}}function Ks(t){var e=+this._x.call(null,t),n=+this._y.call(null,t);return Mn(this.cover(e,n),e,n,t)}function Mn(t,e,n,r){if(isNaN(e)||isNaN(n))return t;var i,s=t._root,o={data:r},a=t._x0,l=t._y0,u=t._x1,c=t._y1,h,f,x,b,_,g,v,E;if(!s)return t._root=o,t;for(;s.length;)if((_=e>=(h=(a+u)/2))?a=h:u=h,(g=n>=(f=(l+c)/2))?l=f:c=f,i=s,!(s=s[v=g<<1|_]))return i[v]=o,t;if(x=+t._x.call(null,s.data),b=+t._y.call(null,s.data),e===x&&n===b)return o.next=s,i?i[v]=o:t._root=o,t;do i=i?i[v]=new Array(4):t._root=new Array(4),(_=e>=(h=(a+u)/2))?a=h:u=h,(g=n>=(f=(l+c)/2))?l=f:c=f;while((v=g<<1|_)===(E=(b>=f)<<1|x>=h));return i[E]=s,i[v]=o,t}function Qs(t){var e,n,r=t.length,i,s,o=new Array(r),a=new Array(r),l=1/0,u=1/0,c=-1/0,h=-1/0;for(n=0;n<r;++n)isNaN(i=+this._x.call(null,e=t[n]))||isNaN(s=+this._y.call(null,e))||(o[n]=i,a[n]=s,i<l&&(l=i),i>c&&(c=i),s<u&&(u=s),s>h&&(h=s));if(l>c||u>h)return this;for(this.cover(l,u).cover(c,h),n=0;n<r;++n)Mn(this,o[n],a[n],t[n]);return this}function Js(t,e){if(isNaN(t=+t)||isNaN(e=+e))return this;var n=this._x0,r=this._y0,i=this._x1,s=this._y1;if(isNaN(n))i=(n=Math.floor(t))+1,s=(r=Math.floor(e))+1;else{for(var o=i-n,a=this._root,l,u;n>t||t>=i||r>e||e>=s;)switch(u=(e<r)<<1|t<n,l=new Array(4),l[u]=a,a=l,o*=2,u){case 0:i=n+o,s=r+o;break;case 1:n=i-o,s=r+o;break;case 2:i=n+o,r=s-o;break;case 3:n=i-o,r=s-o;break}this._root&&this._root.length&&(this._root=a)}return this._x0=n,this._y0=r,this._x1=i,this._y1=s,this}function Zs(){var t=[];return this.visit(function(e){if(!e.length)do t.push(e.data);while(e=e.next)}),t}function to(t){return arguments.length?this.cover(+t[0][0],+t[0][1]).cover(+t[1][0],+t[1][1]):isNaN(this._x0)?void 0:[[this._x0,this._y0],[this._x1,this._y1]]}function q(t,e,n,r,i){this.node=t,this.x0=e,this.y0=n,this.x1=r,this.y1=i}function eo(t,e,n){var r,i=this._x0,s=this._y0,o,a,l,u,c=this._x1,h=this._y1,f=[],x=this._root,b,_;for(x&&f.push(new q(x,i,s,c,h)),n==null?n=1/0:(i=t-n,s=e-n,c=t+n,h=e+n,n*=n);b=f.pop();)if(!(!(x=b.node)||(o=b.x0)>c||(a=b.y0)>h||(l=b.x1)<i||(u=b.y1)<s))if(x.length){var g=(o+l)/2,v=(a+u)/2;f.push(new q(x[3],g,v,l,u),new q(x[2],o,v,g,u),new q(x[1],g,a,l,v),new q(x[0],o,a,g,v)),(_=(e>=v)<<1|t>=g)&&(b=f[f.length-1],f[f.length-1]=f[f.length-1-_],f[f.length-1-_]=b)}else{var E=t-+this._x.call(null,x.data),m=e-+this._y.call(null,x.data),d=E*E+m*m;if(d<n){var w=Math.sqrt(n=d);i=t-w,s=e-w,c=t+w,h=e+w,r=x.data}}return r}function no(t){if(isNaN(c=+this._x.call(null,t))||isNaN(h=+this._y.call(null,t)))return this;var e,n=this._root,r,i,s,o=this._x0,a=this._y0,l=this._x1,u=this._y1,c,h,f,x,b,_,g,v;if(!n)return this;if(n.length)for(;;){if((b=c>=(f=(o+l)/2))?o=f:l=f,(_=h>=(x=(a+u)/2))?a=x:u=x,e=n,!(n=n[g=_<<1|b]))return this;if(!n.length)break;(e[g+1&3]||e[g+2&3]||e[g+3&3])&&(r=e,v=g)}for(;n.data!==t;)if(i=n,!(n=n.next))return this;return(s=n.next)&&delete n.next,i?(s?i.next=s:delete i.next,this):e?(s?e[g]=s:delete e[g],(n=e[0]||e[1]||e[2]||e[3])&&n===(e[3]||e[2]||e[1]||e[0])&&!n.length&&(r?r[v]=n:this._root=n),this):(this._root=s,this)}function ro(t){for(var e=0,n=t.length;e<n;++e)this.remove(t[e]);return this}function io(){return this._root}function so(){var t=0;return this.visit(function(e){if(!e.length)do++t;while(e=e.next)}),t}function oo(t){var e=[],n,r=this._root,i,s,o,a,l;for(r&&e.push(new q(r,this._x0,this._y0,this._x1,this._y1));n=e.pop();)if(!t(r=n.node,s=n.x0,o=n.y0,a=n.x1,l=n.y1)&&r.length){var u=(s+a)/2,c=(o+l)/2;(i=r[3])&&e.push(new q(i,u,c,a,l)),(i=r[2])&&e.push(new q(i,s,c,u,l)),(i=r[1])&&e.push(new q(i,u,o,a,c)),(i=r[0])&&e.push(new q(i,s,o,u,c))}return this}function ao(t){var e=[],n=[],r;for(this._root&&e.push(new q(this._root,this._x0,this._y0,this._x1,this._y1));r=e.pop();){var i=r.node;if(i.length){var s,o=r.x0,a=r.y0,l=r.x1,u=r.y1,c=(o+l)/2,h=(a+u)/2;(s=i[0])&&e.push(new q(s,o,a,c,h)),(s=i[1])&&e.push(new q(s,c,a,l,h)),(s=i[2])&&e.push(new q(s,o,h,c,u)),(s=i[3])&&e.push(new q(s,c,h,l,u))}n.push(r)}for(;r=n.pop();)t(r.node,r.x0,r.y0,r.x1,r.y1);return this}function uo(t){return t[0]}function lo(t){return arguments.length?(this._x=t,this):this._x}function co(t){return t[1]}function fo(t){return arguments.length?(this._y=t,this):this._y}function Sn(t,e,n){var r=new Ae(e??uo,n??co,NaN,NaN,NaN,NaN);return t==null?r:r.addAll(t)}function Ae(t,e,n,r,i,s){this._x=t,this._y=e,this._x0=n,this._y0=r,this._x1=i,this._y1=s,this._root=void 0}function Ye(t){for(var e={data:t.data},n=e;t=t.next;)n=n.next={data:t.data};return e}var H=Sn.prototype=Ae.prototype;H.copy=function(){var t=new Ae(this._x,this._y,this._x0,this._y0,this._x1,this._y1),e=this._root,n,r;if(!e)return t;if(!e.length)return t._root=Ye(e),t;for(n=[{source:e,target:t._root=new Array(4)}];e=n.pop();)for(var i=0;i<4;++i)(r=e.source[i])&&(r.length?n.push({source:r,target:e.target[i]=new Array(4)}):e.target[i]=Ye(r));return t};H.add=Ks;H.addAll=Qs;H.cover=Js;H.data=Zs;H.extent=to;H.find=eo;H.remove=no;H.removeAll=ro;H.root=io;H.size=so;H.visit=oo;H.visitAfter=ao;H.x=lo;H.y=fo;function ho(){var t,e,n,r=0,i,s,o,a=He(-30),l,u=1,c=1/0,h=.81;function f(){return(Math.random()-.5)*1e-6}function x(m){return m.x}function b(m){return m.y}s=function(){return function(m){return m%13===0}};function _(m){var d,w=t.length;for((!i||o(r,t))&&(i=Sn(t,x,b).visitAfter(v),t.update.push(r)),n=m,d=0;d<w;++d)e=t[d],i.visit(E);++r}function g(){if(t){r=0,t.update=[],o=s(),i=null;var m,d=t.length,w;for(l=new Array(d),m=0;m<d;++m)w=t[m],l[w.index]=+a(w,m,t)}}function v(m){var d=0,w,M,N=0,k,I,C;if(m.length){for(k=I=C=0;C<4;++C)(w=m[C])&&(M=Math.abs(w.value))&&(d+=w.value,N+=M,k+=M*w.x,I+=M*w.y);m.x=k/N,m.y=I/N}else{w=m,w.x=w.data.x,w.y=w.data.y;do d+=l[w.data.index];while(w=w.next)}m.value=d}function E(m,d,w,M){if(!m.value)return!0;var N=m.x-e.x,k=m.y-e.y,I=M-d,C=N*N+k*k;if(I*I/h<C)return C<c&&(N===0&&(N=f(),C+=N*N),k===0&&(k=f(),C+=k*k),C<u&&(C=Math.sqrt(u*C)),e.vx+=N*m.value*n/C,e.vy+=k*m.value*n/C),!0;if(m.length||C>=c)return;(m.data!==e||m.next)&&(N===0&&(N=f(),C+=N*N),k===0&&(k=f(),C+=k*k),C<u&&(C=Math.sqrt(u*C)));do m.data!==e&&(N=m.data.x-e.x,k=m.data.y-e.y,C=N*N+k*k,N===0&&(N=f(),C+=N*N),k===0&&(k=f(),C+=k*k),C<u&&(C=Math.sqrt(u*C)),I=l[m.data.index]*n/C,e.vx+=N*I,e.vy+=k*I);while(m=m.next)}return _.initialize=function(m){t=m,g()},_.strength=function(m){return arguments.length?(a=typeof m=="function"?m:He(+m),g(),_):a},_.distanceMin=function(m){return arguments.length?(u=m*m,_):Math.sqrt(u)},_.distanceMax=function(m){return arguments.length?(c=m*m,_):Math.sqrt(c)},_.theta=function(m){return arguments.length?(h=m*m,_):Math.sqrt(h)},_.update=function(m){return arguments.length?(s=m,o=s(),_):s},_}function $e(t,e,n){t.prototype=e.prototype=n,n.constructor=t}function Tn(t,e){var n=Object.create(t.prototype);for(var r in e)n[r]=e[r];return n}function Xt(){}var It=.7,ee=1/It,Nt="\\s*([+-]?\\d+)\\s*",zt="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",nt="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",po=/^#([0-9a-f]{3,8})$/,go=new RegExp(`^rgb\\(${Nt},${Nt},${Nt}\\)$`),vo=new RegExp(`^rgb\\(${nt},${nt},${nt}\\)$`),xo=new RegExp(`^rgba\\(${Nt},${Nt},${Nt},${zt}\\)$`),_o=new RegExp(`^rgba\\(${nt},${nt},${nt},${zt}\\)$`),mo=new RegExp(`^hsl\\(${zt},${nt},${nt}\\)$`),yo=new RegExp(`^hsla\\(${zt},${nt},${nt},${zt}\\)$`),Ve={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};$e(Xt,Lt,{copy(t){return Object.assign(new this.constructor,this,t)},displayable(){return this.rgb().displayable()},hex:Ue,formatHex:Ue,formatHex8:wo,formatHsl:bo,formatRgb:je,toString:je});function Ue(){return this.rgb().formatHex()}function wo(){return this.rgb().formatHex8()}function bo(){return Rn(this).formatHsl()}function je(){return this.rgb().formatRgb()}function Lt(t){var e,n;return t=(t+"").trim().toLowerCase(),(e=po.exec(t))?(n=e[1].length,e=parseInt(e[1],16),n===6?Ge(e):n===3?new U(e>>8&15|e>>4&240,e>>4&15|e&240,(e&15)<<4|e&15,1):n===8?Bt(e>>24&255,e>>16&255,e>>8&255,(e&255)/255):n===4?Bt(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|e&240,((e&15)<<4|e&15)/255):null):(e=go.exec(t))?new U(e[1],e[2],e[3],1):(e=vo.exec(t))?new U(e[1]*255/100,e[2]*255/100,e[3]*255/100,1):(e=xo.exec(t))?Bt(e[1],e[2],e[3],e[4]):(e=_o.exec(t))?Bt(e[1]*255/100,e[2]*255/100,e[3]*255/100,e[4]):(e=mo.exec(t))?Qe(e[1],e[2]/100,e[3]/100,1):(e=yo.exec(t))?Qe(e[1],e[2]/100,e[3]/100,e[4]):Ve.hasOwnProperty(t)?Ge(Ve[t]):t==="transparent"?new U(NaN,NaN,NaN,0):null}function Ge(t){return new U(t>>16&255,t>>8&255,t&255,1)}function Bt(t,e,n,r){return r<=0&&(t=e=n=NaN),new U(t,e,n,r)}function No(t){return t instanceof Xt||(t=Lt(t)),t?(t=t.rgb(),new U(t.r,t.g,t.b,t.opacity)):new U}function ve(t,e,n,r){return arguments.length===1?No(t):new U(t,e,n,r??1)}function U(t,e,n,r){this.r=+t,this.g=+e,this.b=+n,this.opacity=+r}$e(U,ve,Tn(Xt,{brighter(t){return t=t==null?ee:Math.pow(ee,t),new U(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=t==null?It:Math.pow(It,t),new U(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new U(xt(this.r),xt(this.g),xt(this.b),ne(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:We,formatHex:We,formatHex8:Eo,formatRgb:Ke,toString:Ke}));function We(){return`#${vt(this.r)}${vt(this.g)}${vt(this.b)}`}function Eo(){return`#${vt(this.r)}${vt(this.g)}${vt(this.b)}${vt((isNaN(this.opacity)?1:this.opacity)*255)}`}function Ke(){const t=ne(this.opacity);return`${t===1?"rgb(":"rgba("}${xt(this.r)}, ${xt(this.g)}, ${xt(this.b)}${t===1?")":`, ${t})`}`}function ne(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function xt(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function vt(t){return t=xt(t),(t<16?"0":"")+t.toString(16)}function Qe(t,e,n,r){return r<=0?t=e=n=NaN:n<=0||n>=1?t=e=NaN:e<=0&&(t=NaN),new J(t,e,n,r)}function Rn(t){if(t instanceof J)return new J(t.h,t.s,t.l,t.opacity);if(t instanceof Xt||(t=Lt(t)),!t)return new J;if(t instanceof J)return t;t=t.rgb();var e=t.r/255,n=t.g/255,r=t.b/255,i=Math.min(e,n,r),s=Math.max(e,n,r),o=NaN,a=s-i,l=(s+i)/2;return a?(e===s?o=(n-r)/a+(n<r)*6:n===s?o=(r-e)/a+2:o=(e-n)/a+4,a/=l<.5?s+i:2-s-i,o*=60):a=l>0&&l<1?0:o,new J(o,a,l,t.opacity)}function ko(t,e,n,r){return arguments.length===1?Rn(t):new J(t,e,n,r??1)}function J(t,e,n,r){this.h=+t,this.s=+e,this.l=+n,this.opacity=+r}$e(J,ko,Tn(Xt,{brighter(t){return t=t==null?ee:Math.pow(ee,t),new J(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=t==null?It:Math.pow(It,t),new J(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=this.h%360+(this.h<0)*360,e=isNaN(t)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*e,i=2*n-r;return new U(le(t>=240?t-240:t+120,i,r),le(t,i,r),le(t<120?t+240:t-120,i,r),this.opacity)},clamp(){return new J(Je(this.h),Ht(this.s),Ht(this.l),ne(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const t=ne(this.opacity);return`${t===1?"hsl(":"hsla("}${Je(this.h)}, ${Ht(this.s)*100}%, ${Ht(this.l)*100}%${t===1?")":`, ${t})`}`}}));function Je(t){return t=(t||0)%360,t<0?t+360:t}function Ht(t){return Math.max(0,Math.min(1,t||0))}function le(t,e,n){return(t<60?e+(n-e)*t/60:t<180?n:t<240?e+(n-e)*(240-t)/60:e)*255}const Dn=t=>()=>t;function Co(t,e){return function(n){return t+n*e}}function Ao(t,e,n){return t=Math.pow(t,n),e=Math.pow(e,n)-t,n=1/n,function(r){return Math.pow(t+r*e,n)}}function $o(t){return(t=+t)==1?In:function(e,n){return n-e?Ao(e,n,t):Dn(isNaN(e)?n:e)}}function In(t,e){var n=e-t;return n?Co(t,n):Dn(isNaN(t)?e:t)}const Ze=function t(e){var n=$o(e);function r(i,s){var o=n((i=ve(i)).r,(s=ve(s)).r),a=n(i.g,s.g),l=n(i.b,s.b),u=In(i.opacity,s.opacity);return function(c){return i.r=o(c),i.g=a(c),i.b=l(c),i.opacity=u(c),i+""}}return r.gamma=t,r}(1);function ft(t,e){return t=+t,e=+e,function(n){return t*(1-n)+e*n}}var xe=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,ce=new RegExp(xe.source,"g");function Mo(t){return function(){return t}}function So(t){return function(e){return t(e)+""}}function To(t,e){var n=xe.lastIndex=ce.lastIndex=0,r,i,s,o=-1,a=[],l=[];for(t=t+"",e=e+"";(r=xe.exec(t))&&(i=ce.exec(e));)(s=i.index)>n&&(s=e.slice(n,s),a[o]?a[o]+=s:a[++o]=s),(r=r[0])===(i=i[0])?a[o]?a[o]+=i:a[++o]=i:(a[++o]=null,l.push({i:o,x:ft(r,i)})),n=ce.lastIndex;return n<e.length&&(s=e.slice(n),a[o]?a[o]+=s:a[++o]=s),a.length<2?l[0]?So(l[0].x):Mo(e):(e=l.length,function(u){for(var c=0,h;c<e;++c)a[(h=l[c]).i]=h.x(u);return a.join("")})}var tn=180/Math.PI,_e={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function zn(t,e,n,r,i,s){var o,a,l;return(o=Math.sqrt(t*t+e*e))&&(t/=o,e/=o),(l=t*n+e*r)&&(n-=t*l,r-=e*l),(a=Math.sqrt(n*n+r*r))&&(n/=a,r/=a,l/=a),t*r<e*n&&(t=-t,e=-e,l=-l,o=-o),{translateX:i,translateY:s,rotate:Math.atan2(e,t)*tn,skewX:Math.atan(l)*tn,scaleX:o,scaleY:a}}var Yt;function Ro(t){const e=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(t+"");return e.isIdentity?_e:zn(e.a,e.b,e.c,e.d,e.e,e.f)}function Do(t){return t==null||(Yt||(Yt=document.createElementNS("http://www.w3.org/2000/svg","g")),Yt.setAttribute("transform",t),!(t=Yt.transform.baseVal.consolidate()))?_e:(t=t.matrix,zn(t.a,t.b,t.c,t.d,t.e,t.f))}function Ln(t,e,n,r){function i(u){return u.length?u.pop()+" ":""}function s(u,c,h,f,x,b){if(u!==h||c!==f){var _=x.push("translate(",null,e,null,n);b.push({i:_-4,x:ft(u,h)},{i:_-2,x:ft(c,f)})}else(h||f)&&x.push("translate("+h+e+f+n)}function o(u,c,h,f){u!==c?(u-c>180?c+=360:c-u>180&&(u+=360),f.push({i:h.push(i(h)+"rotate(",null,r)-2,x:ft(u,c)})):c&&h.push(i(h)+"rotate("+c+r)}function a(u,c,h,f){u!==c?f.push({i:h.push(i(h)+"skewX(",null,r)-2,x:ft(u,c)}):c&&h.push(i(h)+"skewX("+c+r)}function l(u,c,h,f,x,b){if(u!==h||c!==f){var _=x.push(i(x)+"scale(",null,",",null,")");b.push({i:_-4,x:ft(u,h)},{i:_-2,x:ft(c,f)})}else(h!==1||f!==1)&&x.push(i(x)+"scale("+h+","+f+")")}return function(u,c){var h=[],f=[];return u=t(u),c=t(c),s(u.translateX,u.translateY,c.translateX,c.translateY,h,f),o(u.rotate,c.rotate,h,f),a(u.skewX,c.skewX,h,f),l(u.scaleX,u.scaleY,c.scaleX,c.scaleY,h,f),u=c=null,function(x){for(var b=-1,_=f.length,g;++b<_;)h[(g=f[b]).i]=g.x(x);return h.join("")}}}var Io=Ln(Ro,"px, ","px)","deg)"),zo=Ln(Do,", ",")",")"),Lo=1e-12;function en(t){return((t=Math.exp(t))+1/t)/2}function Oo(t){return((t=Math.exp(t))-1/t)/2}function Po(t){return((t=Math.exp(2*t))-1)/(t+1)}const Xo=function t(e,n,r){function i(s,o){var a=s[0],l=s[1],u=s[2],c=o[0],h=o[1],f=o[2],x=c-a,b=h-l,_=x*x+b*b,g,v;if(_<Lo)v=Math.log(f/u)/e,g=function(N){return[a+N*x,l+N*b,u*Math.exp(e*N*v)]};else{var E=Math.sqrt(_),m=(f*f-u*u+r*_)/(2*u*n*E),d=(f*f-u*u-r*_)/(2*f*n*E),w=Math.log(Math.sqrt(m*m+1)-m),M=Math.log(Math.sqrt(d*d+1)-d);v=(M-w)/e,g=function(N){var k=N*v,I=en(w),C=u/(n*E)*(I*Po(e*k+w)-Oo(w));return[a+C*x,l+C*b,u*I/en(e*k+w)]}}return g.duration=v*1e3*e/Math.SQRT2,g}return i.rho=function(s){var o=Math.max(.001,+s),a=o*o,l=a*a;return t(o,a,l)},i}(Math.SQRT2,2,4);var Fo=Pt("start","end","cancel","interrupt"),qo=[],On=0,nn=1,me=2,jt=3,rn=4,ye=5,Gt=6;function se(t,e,n,r,i,s){var o=t.__transition;if(!o)t.__transition={};else if(n in o)return;Bo(t,n,{name:e,index:r,group:i,on:Fo,tween:qo,time:s.time,delay:s.delay,duration:s.duration,ease:s.ease,timer:null,state:On})}function Me(t,e){var n=Z(t,e);if(n.state>On)throw new Error("too late; already scheduled");return n}function rt(t,e){var n=Z(t,e);if(n.state>jt)throw new Error("too late; already running");return n}function Z(t,e){var n=t.__transition;if(!n||!(n=n[e]))throw new Error("transition not found");return n}function Bo(t,e,n){var r=t.__transition,i;r[e]=n,n.timer=Ce(s,0,n.time);function s(u){n.state=nn,n.timer.restart(o,n.delay,n.time),n.delay<=u&&o(u-n.delay)}function o(u){var c,h,f,x;if(n.state!==nn)return l();for(c in r)if(x=r[c],x.name===n.name){if(x.state===jt)return qe(o);x.state===rn?(x.state=Gt,x.timer.stop(),x.on.call("interrupt",t,t.__data__,x.index,x.group),delete r[c]):+c<e&&(x.state=Gt,x.timer.stop(),x.on.call("cancel",t,t.__data__,x.index,x.group),delete r[c])}if(qe(function(){n.state===jt&&(n.state=rn,n.timer.restart(a,n.delay,n.time),a(u))}),n.state=me,n.on.call("start",t,t.__data__,n.index,n.group),n.state===me){for(n.state=jt,i=new Array(f=n.tween.length),c=0,h=-1;c<f;++c)(x=n.tween[c].value.call(t,t.__data__,n.index,n.group))&&(i[++h]=x);i.length=h+1}}function a(u){for(var c=u<n.duration?n.ease.call(null,u/n.duration):(n.timer.restart(l),n.state=ye,1),h=-1,f=i.length;++h<f;)i[h].call(t,c);n.state===ye&&(n.on.call("end",t,t.__data__,n.index,n.group),l())}function l(){n.state=Gt,n.timer.stop(),delete r[e];for(var u in r)return;delete t.__transition}}function Wt(t,e){var n=t.__transition,r,i,s=!0,o;if(n){e=e==null?null:e+"";for(o in n){if((r=n[o]).name!==e){s=!1;continue}i=r.state>me&&r.state<ye,r.state=Gt,r.timer.stop(),r.on.call(i?"interrupt":"cancel",t,t.__data__,r.index,r.group),delete n[o]}s&&delete t.__transition}}function Ho(t){return this.each(function(){Wt(this,t)})}function Yo(t,e){var n,r;return function(){var i=rt(this,t),s=i.tween;if(s!==n){r=n=s;for(var o=0,a=r.length;o<a;++o)if(r[o].name===e){r=r.slice(),r.splice(o,1);break}}i.tween=r}}function Vo(t,e,n){var r,i;if(typeof n!="function")throw new Error;return function(){var s=rt(this,t),o=s.tween;if(o!==r){i=(r=o).slice();for(var a={name:e,value:n},l=0,u=i.length;l<u;++l)if(i[l].name===e){i[l]=a;break}l===u&&i.push(a)}s.tween=i}}function Uo(t,e){var n=this._id;if(t+="",arguments.length<2){for(var r=Z(this.node(),n).tween,i=0,s=r.length,o;i<s;++i)if((o=r[i]).name===t)return o.value;return null}return this.each((e==null?Yo:Vo)(n,t,e))}function Se(t,e,n){var r=t._id;return t.each(function(){var i=rt(this,r);(i.value||(i.value={}))[e]=n.apply(this,arguments)}),function(i){return Z(i,r).value[e]}}function Pn(t,e){var n;return(typeof e=="number"?ft:e instanceof Lt?Ze:(n=Lt(e))?(e=n,Ze):To)(t,e)}function jo(t){return function(){this.removeAttribute(t)}}function Go(t){return function(){this.removeAttributeNS(t.space,t.local)}}function Wo(t,e,n){var r,i=n+"",s;return function(){var o=this.getAttribute(t);return o===i?null:o===r?s:s=e(r=o,n)}}function Ko(t,e,n){var r,i=n+"",s;return function(){var o=this.getAttributeNS(t.space,t.local);return o===i?null:o===r?s:s=e(r=o,n)}}function Qo(t,e,n){var r,i,s;return function(){var o,a=n(this),l;return a==null?void this.removeAttribute(t):(o=this.getAttribute(t),l=a+"",o===l?null:o===r&&l===i?s:(i=l,s=e(r=o,a)))}}function Jo(t,e,n){var r,i,s;return function(){var o,a=n(this),l;return a==null?void this.removeAttributeNS(t.space,t.local):(o=this.getAttributeNS(t.space,t.local),l=a+"",o===l?null:o===r&&l===i?s:(i=l,s=e(r=o,a)))}}function Zo(t,e){var n=re(t),r=n==="transform"?zo:Pn;return this.attrTween(t,typeof e=="function"?(n.local?Jo:Qo)(n,r,Se(this,"attr."+t,e)):e==null?(n.local?Go:jo)(n):(n.local?Ko:Wo)(n,r,e))}function ta(t,e){return function(n){this.setAttribute(t,e.call(this,n))}}function ea(t,e){return function(n){this.setAttributeNS(t.space,t.local,e.call(this,n))}}function na(t,e){var n,r;function i(){var s=e.apply(this,arguments);return s!==r&&(n=(r=s)&&ea(t,s)),n}return i._value=e,i}function ra(t,e){var n,r;function i(){var s=e.apply(this,arguments);return s!==r&&(n=(r=s)&&ta(t,s)),n}return i._value=e,i}function ia(t,e){var n="attr."+t;if(arguments.length<2)return(n=this.tween(n))&&n._value;if(e==null)return this.tween(n,null);if(typeof e!="function")throw new Error;var r=re(t);return this.tween(n,(r.local?na:ra)(r,e))}function sa(t,e){return function(){Me(this,t).delay=+e.apply(this,arguments)}}function oa(t,e){return e=+e,function(){Me(this,t).delay=e}}function aa(t){var e=this._id;return arguments.length?this.each((typeof t=="function"?sa:oa)(e,t)):Z(this.node(),e).delay}function ua(t,e){return function(){rt(this,t).duration=+e.apply(this,arguments)}}function la(t,e){return e=+e,function(){rt(this,t).duration=e}}function ca(t){var e=this._id;return arguments.length?this.each((typeof t=="function"?ua:la)(e,t)):Z(this.node(),e).duration}function fa(t,e){if(typeof e!="function")throw new Error;return function(){rt(this,t).ease=e}}function ha(t){var e=this._id;return arguments.length?this.each(fa(e,t)):Z(this.node(),e).ease}function pa(t,e){return function(){var n=e.apply(this,arguments);if(typeof n!="function")throw new Error;rt(this,t).ease=n}}function da(t){if(typeof t!="function")throw new Error;return this.each(pa(this._id,t))}function ga(t){typeof t!="function"&&(t=hn(t));for(var e=this._groups,n=e.length,r=new Array(n),i=0;i<n;++i)for(var s=e[i],o=s.length,a=r[i]=[],l,u=0;u<o;++u)(l=s[u])&&t.call(l,l.__data__,u,s)&&a.push(l);return new lt(r,this._parents,this._name,this._id)}function va(t){if(t._id!==this._id)throw new Error;for(var e=this._groups,n=t._groups,r=e.length,i=n.length,s=Math.min(r,i),o=new Array(r),a=0;a<s;++a)for(var l=e[a],u=n[a],c=l.length,h=o[a]=new Array(c),f,x=0;x<c;++x)(f=l[x]||u[x])&&(h[x]=f);for(;a<r;++a)o[a]=e[a];return new lt(o,this._parents,this._name,this._id)}function xa(t){return(t+"").trim().split(/^|\s+/).every(function(e){var n=e.indexOf(".");return n>=0&&(e=e.slice(0,n)),!e||e==="start"})}function _a(t,e,n){var r,i,s=xa(e)?Me:rt;return function(){var o=s(this,t),a=o.on;a!==r&&(i=(r=a).copy()).on(e,n),o.on=i}}function ma(t,e){var n=this._id;return arguments.length<2?Z(this.node(),n).on.on(t):this.each(_a(n,t,e))}function ya(t){return function(){var e=this.parentNode;for(var n in this.__transition)if(+n!==t)return;e&&e.removeChild(this)}}function wa(){return this.on("end.remove",ya(this._id))}function ba(t){var e=this._name,n=this._id;typeof t!="function"&&(t=we(t));for(var r=this._groups,i=r.length,s=new Array(i),o=0;o<i;++o)for(var a=r[o],l=a.length,u=s[o]=new Array(l),c,h,f=0;f<l;++f)(c=a[f])&&(h=t.call(c,c.__data__,f,a))&&("__data__"in c&&(h.__data__=c.__data__),u[f]=h,se(u[f],e,n,f,u,Z(c,n)));return new lt(s,this._parents,e,n)}function Na(t){var e=this._name,n=this._id;typeof t!="function"&&(t=fn(t));for(var r=this._groups,i=r.length,s=[],o=[],a=0;a<i;++a)for(var l=r[a],u=l.length,c,h=0;h<u;++h)if(c=l[h]){for(var f=t.call(c,c.__data__,h,l),x,b=Z(c,n),_=0,g=f.length;_<g;++_)(x=f[_])&&se(x,e,n,_,f,b);s.push(f),o.push(c)}return new lt(s,o,e,n)}var Ea=Ot.prototype.constructor;function ka(){return new Ea(this._groups,this._parents)}function Ca(t,e){var n,r,i;return function(){var s=Et(this,t),o=(this.style.removeProperty(t),Et(this,t));return s===o?null:s===n&&o===r?i:i=e(n=s,r=o)}}function Xn(t){return function(){this.style.removeProperty(t)}}function Aa(t,e,n){var r,i=n+"",s;return function(){var o=Et(this,t);return o===i?null:o===r?s:s=e(r=o,n)}}function $a(t,e,n){var r,i,s;return function(){var o=Et(this,t),a=n(this),l=a+"";return a==null&&(l=a=(this.style.removeProperty(t),Et(this,t))),o===l?null:o===r&&l===i?s:(i=l,s=e(r=o,a))}}function Ma(t,e){var n,r,i,s="style."+e,o="end."+s,a;return function(){var l=rt(this,t),u=l.on,c=l.value[s]==null?a||(a=Xn(e)):void 0;(u!==n||i!==c)&&(r=(n=u).copy()).on(o,i=c),l.on=r}}function Sa(t,e,n){var r=(t+="")=="transform"?Io:Pn;return e==null?this.styleTween(t,Ca(t,r)).on("end.style."+t,Xn(t)):typeof e=="function"?this.styleTween(t,$a(t,r,Se(this,"style."+t,e))).each(Ma(this._id,t)):this.styleTween(t,Aa(t,r,e),n).on("end.style."+t,null)}function Ta(t,e,n){return function(r){this.style.setProperty(t,e.call(this,r),n)}}function Ra(t,e,n){var r,i;function s(){var o=e.apply(this,arguments);return o!==i&&(r=(i=o)&&Ta(t,o,n)),r}return s._value=e,s}function Da(t,e,n){var r="style."+(t+="");if(arguments.length<2)return(r=this.tween(r))&&r._value;if(e==null)return this.tween(r,null);if(typeof e!="function")throw new Error;return this.tween(r,Ra(t,e,n??""))}function Ia(t){return function(){this.textContent=t}}function za(t){return function(){var e=t(this);this.textContent=e??""}}function La(t){return this.tween("text",typeof t=="function"?za(Se(this,"text",t)):Ia(t==null?"":t+""))}function Oa(t){return function(e){this.textContent=t.call(this,e)}}function Pa(t){var e,n;function r(){var i=t.apply(this,arguments);return i!==n&&(e=(n=i)&&Oa(i)),e}return r._value=t,r}function Xa(t){var e="text";if(arguments.length<1)return(e=this.tween(e))&&e._value;if(t==null)return this.tween(e,null);if(typeof t!="function")throw new Error;return this.tween(e,Pa(t))}function Fa(){for(var t=this._name,e=this._id,n=Fn(),r=this._groups,i=r.length,s=0;s<i;++s)for(var o=r[s],a=o.length,l,u=0;u<a;++u)if(l=o[u]){var c=Z(l,e);se(l,t,n,u,o,{time:c.time+c.delay+c.duration,delay:0,duration:c.duration,ease:c.ease})}return new lt(r,this._parents,t,n)}function qa(){var t,e,n=this,r=n._id,i=n.size();return new Promise(function(s,o){var a={value:o},l={value:function(){--i===0&&s()}};n.each(function(){var u=rt(this,r),c=u.on;c!==t&&(e=(t=c).copy(),e._.cancel.push(a),e._.interrupt.push(a),e._.end.push(l)),u.on=e}),i===0&&s()})}var Ba=0;function lt(t,e,n,r){this._groups=t,this._parents=e,this._name=n,this._id=r}function Fn(){return++Ba}var ot=Ot.prototype;lt.prototype={constructor:lt,select:ba,selectAll:Na,selectChild:ot.selectChild,selectChildren:ot.selectChildren,filter:ga,merge:va,selection:ka,transition:Fa,call:ot.call,nodes:ot.nodes,node:ot.node,size:ot.size,empty:ot.empty,each:ot.each,on:ma,attr:Zo,attrTween:ia,style:Sa,styleTween:Da,text:La,textTween:Xa,remove:wa,tween:Uo,delay:aa,duration:ca,ease:ha,easeVarying:da,end:qa,[Symbol.iterator]:ot[Symbol.iterator]};function Ha(t){return((t*=2)<=1?t*t*t:(t-=2)*t*t+2)/2}var Ya={time:null,delay:0,duration:250,ease:Ha};function Va(t,e){for(var n;!(n=t.__transition)||!(n=n[e]);)if(!(t=t.parentNode))throw new Error(`transition ${e} not found`);return n}function Ua(t){var e,n;t instanceof lt?(e=t._id,t=t._name):(e=Fn(),(n=Ya).time=ke(),t=t==null?null:t+"");for(var r=this._groups,i=r.length,s=0;s<i;++s)for(var o=r[s],a=o.length,l,u=0;u<a;++u)(l=o[u])&&se(l,t,e,u,o,n||Va(l,e));return new lt(r,this._parents,t,e)}Ot.prototype.interrupt=Ho;Ot.prototype.transition=Ua;const Vt=t=>()=>t;function ja(t,{sourceEvent:e,target:n,transform:r,dispatch:i}){Object.defineProperties(this,{type:{value:t,enumerable:!0,configurable:!0},sourceEvent:{value:e,enumerable:!0,configurable:!0},target:{value:n,enumerable:!0,configurable:!0},transform:{value:r,enumerable:!0,configurable:!0},_:{value:i}})}function ut(t,e,n){this.k=t,this.x=e,this.y=n}ut.prototype={constructor:ut,scale:function(t){return t===1?this:new ut(this.k*t,this.x,this.y)},translate:function(t,e){return t===0&e===0?this:new ut(this.k,this.x+this.k*t,this.y+this.k*e)},apply:function(t){return[t[0]*this.k+this.x,t[1]*this.k+this.y]},applyX:function(t){return t*this.k+this.x},applyY:function(t){return t*this.k+this.y},invert:function(t){return[(t[0]-this.x)/this.k,(t[1]-this.y)/this.k]},invertX:function(t){return(t-this.x)/this.k},invertY:function(t){return(t-this.y)/this.k},rescaleX:function(t){return t.copy().domain(t.range().map(this.invertX,this).map(t.invert,t))},rescaleY:function(t){return t.copy().domain(t.range().map(this.invertY,this).map(t.invert,t))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var Te=new ut(1,0,0);ut.prototype;function fe(t){t.stopImmediatePropagation()}function At(t){t.preventDefault(),t.stopImmediatePropagation()}function Ga(t){return(!t.ctrlKey||t.type==="wheel")&&!t.button}function Wa(){var t=this;return t instanceof SVGElement?(t=t.ownerSVGElement||t,t.hasAttribute("viewBox")?(t=t.viewBox.baseVal,[[t.x,t.y],[t.x+t.width,t.y+t.height]]):[[0,0],[t.width.baseVal.value,t.height.baseVal.value]]):[[0,0],[t.clientWidth,t.clientHeight]]}function sn(){return this.__zoom||Te}function Ka(t){return-t.deltaY*(t.deltaMode===1?.05:t.deltaMode?1:.002)*(t.ctrlKey?10:1)}function Qa(){return navigator.maxTouchPoints||"ontouchstart"in this}function Ja(t,e,n){var r=t.invertX(e[0][0])-n[0][0],i=t.invertX(e[1][0])-n[1][0],s=t.invertY(e[0][1])-n[0][1],o=t.invertY(e[1][1])-n[1][1];return t.translate(i>r?(r+i)/2:Math.min(0,r)||Math.max(0,i),o>s?(s+o)/2:Math.min(0,s)||Math.max(0,o))}function Za(){var t=Ga,e=Wa,n=Ja,r=Ka,i=Qa,s=[0,1/0],o=[[-1/0,-1/0],[1/0,1/0]],a=250,l=Xo,u=Pt("start","zoom","end"),c,h,f,x=500,b=150,_=0,g=10;function v(p){p.property("__zoom",sn).on("wheel.zoom",k,{passive:!1}).on("mousedown.zoom",I).on("dblclick.zoom",C).filter(i).on("touchstart.zoom",O).on("touchmove.zoom",j).on("touchend.zoom touchcancel.zoom",Y).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}v.transform=function(p,A,y,$){var T=p.selection?p.selection():p;T.property("__zoom",sn),p!==T?w(p,A,y,$):T.interrupt().each(function(){M(this,arguments).event($).start().zoom(null,typeof A=="function"?A.apply(this,arguments):A).end()})},v.scaleBy=function(p,A,y,$){v.scaleTo(p,function(){var T=this.__zoom.k,R=typeof A=="function"?A.apply(this,arguments):A;return T*R},y,$)},v.scaleTo=function(p,A,y,$){v.transform(p,function(){var T=e.apply(this,arguments),R=this.__zoom,D=y==null?d(T):typeof y=="function"?y.apply(this,arguments):y,z=R.invert(D),P=typeof A=="function"?A.apply(this,arguments):A;return n(m(E(R,P),D,z),T,o)},y,$)},v.translateBy=function(p,A,y,$){v.transform(p,function(){return n(this.__zoom.translate(typeof A=="function"?A.apply(this,arguments):A,typeof y=="function"?y.apply(this,arguments):y),e.apply(this,arguments),o)},null,$)},v.translateTo=function(p,A,y,$,T){v.transform(p,function(){var R=e.apply(this,arguments),D=this.__zoom,z=$==null?d(R):typeof $=="function"?$.apply(this,arguments):$;return n(Te.translate(z[0],z[1]).scale(D.k).translate(typeof A=="function"?-A.apply(this,arguments):-A,typeof y=="function"?-y.apply(this,arguments):-y),R,o)},$,T)};function E(p,A){return A=Math.max(s[0],Math.min(s[1],A)),A===p.k?p:new ut(A,p.x,p.y)}function m(p,A,y){var $=A[0]-y[0]*p.k,T=A[1]-y[1]*p.k;return $===p.x&&T===p.y?p:new ut(p.k,$,T)}function d(p){return[(+p[0][0]+ +p[1][0])/2,(+p[0][1]+ +p[1][1])/2]}function w(p,A,y,$){p.on("start.zoom",function(){M(this,arguments).event($).start()}).on("interrupt.zoom end.zoom",function(){M(this,arguments).event($).end()}).tween("zoom",function(){var T=this,R=arguments,D=M(T,R).event($),z=e.apply(T,R),P=y==null?d(z):typeof y=="function"?y.apply(T,R):y,tt=Math.max(z[1][0]-z[0][0],z[1][1]-z[0][1]),X=T.__zoom,K=typeof A=="function"?A.apply(T,R):A,it=l(X.invert(P).concat(tt/X.k),K.invert(P).concat(tt/K.k));return function(Q){if(Q===1)Q=K;else{var st=it(Q),oe=tt/st[2];Q=new ut(oe,P[0]-st[0]*oe,P[1]-st[1]*oe)}D.zoom(null,Q)}})}function M(p,A,y){return!y&&p.__zooming||new N(p,A)}function N(p,A){this.that=p,this.args=A,this.active=0,this.sourceEvent=null,this.extent=e.apply(p,A),this.taps=0}N.prototype={event:function(p){return p&&(this.sourceEvent=p),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(p,A){return this.mouse&&p!=="mouse"&&(this.mouse[1]=A.invert(this.mouse[0])),this.touch0&&p!=="touch"&&(this.touch0[1]=A.invert(this.touch0[0])),this.touch1&&p!=="touch"&&(this.touch1[1]=A.invert(this.touch1[0])),this.that.__zoom=A,this.emit("zoom"),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit("end")),this},emit:function(p){var A=V(this.that).datum();u.call(p,this.that,new ja(p,{sourceEvent:this.sourceEvent,target:v,type:p,transform:this.that.__zoom,dispatch:u}),A)}};function k(p,...A){if(!t.apply(this,arguments))return;var y=M(this,A).event(p),$=this.__zoom,T=Math.max(s[0],Math.min(s[1],$.k*Math.pow(2,r.apply(this,arguments)))),R=at(p);if(y.wheel)(y.mouse[0][0]!==R[0]||y.mouse[0][1]!==R[1])&&(y.mouse[1]=$.invert(y.mouse[0]=R)),clearTimeout(y.wheel);else{if($.k===T)return;y.mouse=[R,$.invert(R)],Wt(this),y.start()}At(p),y.wheel=setTimeout(D,b),y.zoom("mouse",n(m(E($,T),y.mouse[0],y.mouse[1]),y.extent,o));function D(){y.wheel=null,y.end()}}function I(p,...A){if(f||!t.apply(this,arguments))return;var y=p.currentTarget,$=M(this,A,!0).event(p),T=V(p.view).on("mousemove.zoom",P,!0).on("mouseup.zoom",tt,!0),R=at(p,y),D=p.clientX,z=p.clientY;bn(p.view),fe(p),$.mouse=[R,this.__zoom.invert(R)],Wt(this),$.start();function P(X){if(At(X),!$.moved){var K=X.clientX-D,it=X.clientY-z;$.moved=K*K+it*it>_}$.event(X).zoom("mouse",n(m($.that.__zoom,$.mouse[0]=at(X,y),$.mouse[1]),$.extent,o))}function tt(X){T.on("mousemove.zoom mouseup.zoom",null),Nn(X.view,$.moved),At(X),$.event(X).end()}}function C(p,...A){if(t.apply(this,arguments)){var y=this.__zoom,$=at(p.changedTouches?p.changedTouches[0]:p,this),T=y.invert($),R=y.k*(p.shiftKey?.5:2),D=n(m(E(y,R),$,T),e.apply(this,A),o);At(p),a>0?V(this).transition().duration(a).call(w,D,$,p):V(this).call(v.transform,D,$,p)}}function O(p,...A){if(t.apply(this,arguments)){var y=p.touches,$=y.length,T=M(this,A,p.changedTouches.length===$).event(p),R,D,z,P;for(fe(p),D=0;D<$;++D)z=y[D],P=at(z,this),P=[P,this.__zoom.invert(P),z.identifier],T.touch0?!T.touch1&&T.touch0[2]!==P[2]&&(T.touch1=P,T.taps=0):(T.touch0=P,R=!0,T.taps=1+!!c);c&&(c=clearTimeout(c)),R&&(T.taps<2&&(h=P[0],c=setTimeout(function(){c=null},x)),Wt(this),T.start())}}function j(p,...A){if(this.__zooming){var y=M(this,A).event(p),$=p.changedTouches,T=$.length,R,D,z,P;for(At(p),R=0;R<T;++R)D=$[R],z=at(D,this),y.touch0&&y.touch0[2]===D.identifier?y.touch0[0]=z:y.touch1&&y.touch1[2]===D.identifier&&(y.touch1[0]=z);if(D=y.that.__zoom,y.touch1){var tt=y.touch0[0],X=y.touch0[1],K=y.touch1[0],it=y.touch1[1],Q=(Q=K[0]-tt[0])*Q+(Q=K[1]-tt[1])*Q,st=(st=it[0]-X[0])*st+(st=it[1]-X[1])*st;D=E(D,Math.sqrt(Q/st)),z=[(tt[0]+K[0])/2,(tt[1]+K[1])/2],P=[(X[0]+it[0])/2,(X[1]+it[1])/2]}else if(y.touch0)z=y.touch0[0],P=y.touch0[1];else return;y.zoom("touch",n(m(D,z,P),y.extent,o))}}function Y(p,...A){if(this.__zooming){var y=M(this,A).event(p),$=p.changedTouches,T=$.length,R,D;for(fe(p),f&&clearTimeout(f),f=setTimeout(function(){f=null},x),R=0;R<T;++R)D=$[R],y.touch0&&y.touch0[2]===D.identifier?delete y.touch0:y.touch1&&y.touch1[2]===D.identifier&&delete y.touch1;if(y.touch1&&!y.touch0&&(y.touch0=y.touch1,delete y.touch1),y.touch0)y.touch0[1]=this.__zoom.invert(y.touch0[0]);else if(y.end(),y.taps===2&&(D=at(D,this),Math.hypot(h[0]-D[0],h[1]-D[1])<g)){var z=V(this).on("dblclick.zoom");z&&z.apply(this,arguments)}}}return v.wheelDelta=function(p){return arguments.length?(r=typeof p=="function"?p:Vt(+p),v):r},v.filter=function(p){return arguments.length?(t=typeof p=="function"?p:Vt(!!p),v):t},v.touchable=function(p){return arguments.length?(i=typeof p=="function"?p:Vt(!!p),v):i},v.extent=function(p){return arguments.length?(e=typeof p=="function"?p:Vt([[+p[0][0],+p[0][1]],[+p[1][0],+p[1][1]]]),v):e},v.scaleExtent=function(p){return arguments.length?(s[0]=+p[0],s[1]=+p[1],v):[s[0],s[1]]},v.translateExtent=function(p){return arguments.length?(o[0][0]=+p[0][0],o[1][0]=+p[1][0],o[0][1]=+p[0][1],o[1][1]=+p[1][1],v):[[o[0][0],o[0][1]],[o[1][0],o[1][1]]]},v.constrain=function(p){return arguments.length?(n=p,v):n},v.duration=function(p){return arguments.length?(a=+p,v):a},v.interpolate=function(p){return arguments.length?(l=p,v):l},v.on=function(){var p=u.on.apply(u,arguments);return p===u?v:p},v.clickDistance=function(p){return arguments.length?(_=(p=+p)*p,v):Math.sqrt(_)},v.tapDistance=function(p){return arguments.length?(g=+p,v):g},v}var ht=(t=>(t[t.NeigbhorIsParent=0]="NeigbhorIsParent",t[t.NeigbhorIsAChild=1]="NeigbhorIsAChild",t[t.NeigbhorIsASibling=2]="NeigbhorIsASibling",t[t.NoneOfTheAbove=3]="NoneOfTheAbove",t[t.NeigbhorIsAFormerChild=4]="NeigbhorIsAFormerChild",t))(ht||{});const tu=[{title:"IsParent",relationship:ht.NeigbhorIsParent},{title:"IsAChild",relationship:ht.NeigbhorIsAChild},{title:"IsASibling",relationship:ht.NeigbhorIsASibling},{title:"NoneOfTheAbove",relationship:ht.NoneOfTheAbove}],qn=[ht.NeigbhorIsAChild,ht.NeigbhorIsParent],eu=t=>t.linkType==="Router2Router"?1:qn.includes(t.relationship)?.5:0,nu=[...qn,ht.NeigbhorIsASibling],$t=100,ru={BrokenLink:5*$t,Router2Router:2.5*$t,Coordinator2Router:2.5*$t,Coordinator2EndDevice:$t,EndDevice2Router:$t},iu=t=>ru[t.linkType]??250,su=(t,e)=>{const n=t.source,r=t.target,[i,s]=e.apply([n.x,n.y]),[o,a]=e.apply([r.x,r.y]);return`M ${i} ${s} L ${o} ${a}`},ou=({transform:t,node:e,link:n,linkLabel:r,links:i})=>{i.forEach(s=>{const[o,a]=t.apply([s.source.x,s.source.y]),[l,u]=t.apply([s.target.x,s.target.y]);s.x=(l+o)/2,s.y=(u+a)/2}),n.attr("d",s=>su(s,t)),r.attr("x",({source:s,target:o})=>t.applyX((s.x+o.x)/2)).attr("y",({source:s,target:o})=>t.applyY((s.y+o.y)/2)),e.attr("transform",s=>{const[l,u]=t.apply([s.x,s.y]);return`translate(${l-16}, ${u-16})`})},au=({networkGraph:t,links:e,selectedNode:n,node:r,link:i,linkLabel:s})=>{const o=new Set;t.nodes.forEach(u=>o.add(u.ieeeAddr+","+u.ieeeAddr)),e.forEach(u=>o.add(u.source.ieeeAddr+","+u.target.ieeeAddr));const a=(u,c)=>o.has(u.ieeeAddr+","+c.ieeeAddr),l=u=>(u==null?void 0:u.source)===n||(u==null?void 0:u.target)===n?1:.15;n?(r.style("opacity",u=>a(n,u)||a(u,n)?1:.15),i.style("stroke-opacity",l),s.style("opacity",l)):(r.style("opacity",1),i.style("stroke-opacity",1),s.style("opacity",1))};class uu extends et.Component{constructor(){super(...arguments),this.ref=et.createRef(),this.svgRef=et.createRef(),this.simulation=js(),this.state={width:0,height:0,visibleLinks:nu,legendIsVisible:!0},this.transform=Te,this.updateNodes=()=>{var x;const{networkGraph:e}=this.props,{visibleLinks:n,selectedNode:r,width:i,height:s}=this.state,o=V(this.svgRef.current),a=o.selectAll(`.${L.node}`),l=o.selectAll(`.${L.link}`),u=o.selectAll(`.${L.linkLabel}`),c=e.links.filter(b=>Re(n,b.relationships).length);this.simulation.nodes(e.nodes.concat(c)),(x=this.simulation.force("link"))==null||x.links(c),this.simulation.on("tick",()=>ou({transform:this.transform,node:a,link:l,linkLabel:u,links:c}));const h=o.selectAll(".everything");Za().extent([[0,0],[i,s]]).scaleExtent([1/10,8]).on("zoom",({transform:b})=>{h.attr("transform",b)})(o),au({networkGraph:e,links:c,selectedNode:r,node:a,link:l,linkLabel:u}),a.on("click",(b,_)=>{this.setState({selectedNode:r?null:_})}),this.simulation.alphaTarget(.03).restart()},this.initPage=()=>{const{width:e,height:n}=this.ref.current.getBoundingClientRect();this.setState({width:e,height:n}),this.updateForces(e,n)},this.onRequestClick=()=>{const{networkMapRequest:e}=this.props;e()},this.onLinkTypeFilterChange=e=>{const{visibleLinks:n}=this.state,{checked:r,value:i}=e.target,s=parseInt(i,10);let o=[...n];r?o.push(s):o=o.filter(a=>a!==s),this.setState({visibleLinks:o})}}updateForces(e,n){this.simulation=this.simulation.force("link",Os().id(r=>r.ieeeAddr).distance(iu).strength(eu)).force("charge",ho().strength(-700)).force("collisionForce",zs()).force("center",vs(e/2,n/2)).force("x",Gs().strength(.1)).force("y",Ws().strength(.2))}componentDidMount(){setTimeout(this.initPage,200)}componentDidUpdate(){this.updateNodes()}renderMap(){const{width:e,height:n,visibleLinks:r}=this.state,{networkGraph:i,deviceStates:s,devices:o,availability:a}=this.props,l=i.links.filter(u=>Re(r,u.relationships).length>0);return S.jsx("svg",{ref:this.svgRef,viewBox:`0 0 ${e} ${n}`,children:S.jsxs("g",{className:"everything",children:[S.jsx(ns,{links:l}),S.jsx(gs,{root:this.svgRef.current,nodes:i.nodes,simulation:this.simulation,deviceStates:s,devices:o,availability:a})]})})}renderMessage(){const{networkGraphIsLoading:e,t:n}=this.props;return S.jsx("div",{className:"h-100 d-flex justify-content-center align-items-center",children:e?S.jsxs("div",{children:[S.jsx(Yn,{}),S.jsx("div",{children:n("loading")})]}):S.jsx(De,{onClick:this.onRequestClick,className:"btn btn-primary d-block",children:n("load")})})}renderMapControls(){const{visibleLinks:e}=this.state;return S.jsxs("div",{className:L.controls,children:[tu.map(n=>S.jsxs("div",{className:"form-check form-check-inline",children:[S.jsx("input",{onChange:this.onLinkTypeFilterChange,className:"form-check-input",type:"checkbox",id:n.title,value:n.relationship,checked:e.includes(n.relationship)}),S.jsx("label",{className:"form-check-label",htmlFor:n.title,children:n.title})]},n.title)),S.jsx("div",{className:"btn-group btn-group-sm",role:"group",children:S.jsx(De,{title:"Refresh data",className:"btn btn-primary",onClick:this.onRequestClick,children:S.jsx("i",{className:"fa fa-sync"})})})]})}renderHelp(){const{t:e}=this.props,{legendIsVisible:n}=this.state;return S.jsxs("div",{className:wt("fixed-bottom",{"d-none":!n}),onClick:()=>this.setState({legendIsVisible:!1}),children:[S.jsxs("div",{className:wt(L.node,L.Coordinator),children:[S.jsx("svg",{width:"28",height:"28",viewBox:"0 0 28 28",children:S.jsx("polygon",{points:En(5,5,14)})})," ",e("help_is_coordinator")]}),S.jsx("div",{className:wt(L.node,L.EndDevice),children:e("help_end_device_description")}),S.jsx("div",{className:wt(L.node,L.Router),children:e("help_router_description")}),S.jsx("div",{children:e("help_coordinator_link_description")}),S.jsx("div",{children:e("help_router_links_description")}),S.jsx("div",{children:e("help_lqi_description")}),S.jsx("div",{children:e("hide")})]})}render(){const{networkGraph:e}=this.props;return S.jsxs("div",{className:L.container,ref:this.ref,children:[e.nodes.length?S.jsxs(et.Fragment,{children:[this.renderMapControls()," ",this.renderMap()]}):this.renderMessage(),this.renderHelp()]})}}const fu=Vn("map")(Un(["networkGraph","networkGraphIsLoading","deviceStates","devices","availability"],jn)(uu));export{fu as ConnectedMap};
@@ -0,0 +1 @@
1
+ import{$ as b,a0 as F,E as v,a1 as D,a2 as x,a3 as S,a4 as C,c as A,a as w,r as B,i as E,z as I,j as f}from"./index-6fd02931.js";import{D as j}from"./DashboardDevice-0216e0f5.js";import{i as k,b as N,g as G,c as y,D as O}from"./DashboardFeatureWrapper-735dbb7f.js";import{_ as P}from"./_baseSet-8cfc46df.js";import{a as T,g as L,G as K,p as M}from"./persist-203c6c60.js";import{D as _}from"./DEVICES_GLOBAL_NAME-6620c611.js";import"./index-023be162.js";import"./DeviceImage-1eac1b50.js";var R=b,V=P,$=F;function W(t,a,i){for(var e=-1,s=a.length,l={};++e<s;){var r=a[e],n=R(t,r);i(n,r)&&V(l,$(r,t),n)}return l}var q=W,z=D,H=x,J=q,Q=S;function U(t,a){if(t==null)return{};var i=z(Q(t),function(e){return[e]});return a=H(a),J(t,i,function(e,s){return a(e,s[0])})}var X=U;const Y=v(X),Z=["linkquality","battery","battery_low","battery_state","color_temp_startup","voltage","strength","color_options","warning","position","operation_mode","operation_mode2","programming_mode","options","programming","schedule_monday","schedule_tuesday","schedule_wednesday","schedule_thursday","schedule_friday","schedule_saturday","schedule_sunday","holiday_mode_date"],ee=["state","brightness","color_temp","mode","sound","occupancy","tamper","alarm"],re=["light"],te=["",null,void 0],g=(t,a={})=>{const{access:i,property:e,name:s,type:l}=t;let{features:r}=t;if(k(t)||N(t)){r=r.map(d=>g(d,e?a[e]:a)).filter(d=>d);const c=G(r,"property");r=Object.values(c).map(d=>d[0])}const n={...t,features:r};return ee.includes(s)||re.includes(l)?n:i&&!(i&y.ACCESS_STATE&&!te.includes(a[e]))?!1:s=="voltage"&&a.battery==null?n:Z.includes(s)?!1:i&y.ACCESS_STATE&&C(i)||Array.isArray(r)&&r.length>0?n:!1},ae=["friendly_name","description","ieee_address","manufacturer","type","power_source","model_id","definition.model","definition.vendor"];function se(t,a,i){return Object.values(t).filter(e=>e.supported).map(e=>({device:e,deviceState:a[e.friendly_name]??{}})).map(({device:e,deviceState:s})=>{var n;const r=(((n=e.definition)==null?void 0:n.exposes)??[]).map(c=>i(c,s)).filter(c=>c);return{device:e,deviceState:s,filteredFeatures:r}}).filter(({filteredFeatures:e})=>e.length>0).sort((e,s)=>e.device.friendly_name.localeCompare(s.device.friendly_name))}function ne(t){const{setDeviceState:a,getDeviceState:i,deviceStates:e,bridgeInfo:s,devices:l}=t,[r,n]=B.useState(()=>T(L(_))??{}),c=o=>{const p={...r,globalFilter:o};n(p),M(_,p)},d=Y(l,(o,p)=>E(o,s.config)?!1:r.globalFilter?ae.map(u=>I(o,u)).filter(Boolean).map(String).map(u=>u.toLowerCase()).some(u=>u.includes(r.globalFilter.toLowerCase())):!0);return f.jsxs("div",{className:"row",children:[f.jsx("div",{className:"col-12",children:f.jsx("div",{className:"flex-fill card flex-shrink-1",children:f.jsx("div",{className:"card-footer",children:f.jsx(K,{globalFilter:r.globalFilter,setGlobalFilter:c})})})}),se(d,e,g).map(({device:o,deviceState:p,filteredFeatures:u})=>f.jsx(j,{feature:{features:u},device:o,deviceState:p,onChange:(h,m)=>a(o.friendly_name,m),onRead:(h,m)=>i(o.friendly_name,m),featureWrapperClass:O,lastSeenType:s.config.advanced.last_seen},o.ieee_address))]})}const me=A(["devices","deviceStates","bridgeInfo"],w)(ne);export{me as ConnectedDashboardPage};
@@ -1 +1 @@
1
- import{j as e,u as x,L as f,g as j,b as c}from"./index-fb4a4614.js";import{L as u,P as p}from"./index-662e592d.js";import{T as h}from"./DashboardFeatureWrapper-ef543cb2.js";import{D as N}from"./DeviceImage-a3fb91b8.js";const g=({device:t,deviceState:a,lastSeenType:s})=>{const{linkquality:l}=a,{supported:r}=t;return e.jsx("footer",{className:"card-footer pt-0",children:e.jsxs("div",{className:"row justify-content-between flex-nowrap",children:[e.jsx("div",{title:"last update",className:"col text-truncate",children:e.jsx(u,{state:a,lastSeenType:s})}),e.jsxs("div",{className:"col col-auto text-truncate",children:[e.jsxs("span",{className:"me-1",children:[e.jsx("i",{className:"fa fa-signal fa-fw"})," ",l," LQI"]},"linkquality"),r&&e.jsx(p,{device:t,deviceState:a},"power")]})]})})},D=g,b="_deviceImage_10iuz_1",w={deviceImage:b},y=({onChange:t,onRead:a,device:s,endpoint:l,deviceState:r,lastSeenType:i,feature:{features:n},featureWrapperClass:o,controls:d})=>{const{t:m}=x("zigbee");return e.jsx("div",{className:"col-xl-3 col-lg-4 col-sm-6 col-12 d-flex",children:e.jsxs("div",{className:"flex-fill card flex-shrink-1",children:[e.jsxs("div",{className:"card-header pb-0 d-flex justify-content-between",children:[e.jsxs(f,{to:j(s.ieee_address),children:[e.jsx(N,{disabled:!1,device:s,className:c(w.deviceImage,"me-2 d-inline")}),s.friendly_name,l?` (${m("endpoint")}: ${l})`:""]}),d]}),e.jsx("div",{className:"card-header py-0 d-flex justify-content-between",children:e.jsx("small",{children:s.description})}),e.jsx("div",{className:c("card-body align-items-center row"),children:e.jsx(h,{feature:{features:n},className:"row",type:"composite",device:s,deviceState:r,onChange:t,onRead:a,featureWrapperClass:o,minimal:!0})}),e.jsx(D,{device:s,deviceState:r,lastSeenType:i})]})})},_=y;export{_ as D};
1
+ import{j as e,u as x,L as f,g as j,b as c}from"./index-6fd02931.js";import{L as u,P as p}from"./index-023be162.js";import{T as h}from"./DashboardFeatureWrapper-735dbb7f.js";import{D as N}from"./DeviceImage-1eac1b50.js";const g=({device:t,deviceState:a,lastSeenType:s})=>{const{linkquality:l}=a,{supported:r}=t;return e.jsx("footer",{className:"card-footer pt-0",children:e.jsxs("div",{className:"row justify-content-between flex-nowrap",children:[e.jsx("div",{title:"last update",className:"col text-truncate",children:e.jsx(u,{state:a,lastSeenType:s})}),e.jsxs("div",{className:"col col-auto text-truncate",children:[e.jsxs("span",{className:"me-1",children:[e.jsx("i",{className:"fa fa-signal fa-fw"})," ",l," LQI"]},"linkquality"),r&&e.jsx(p,{device:t,deviceState:a},"power")]})]})})},D=g,b="_deviceImage_10iuz_1",w={deviceImage:b},y=({onChange:t,onRead:a,device:s,endpoint:l,deviceState:r,lastSeenType:i,feature:{features:n},featureWrapperClass:o,controls:d})=>{const{t:m}=x("zigbee");return e.jsx("div",{className:"col-xl-3 col-lg-4 col-sm-6 col-12 d-flex",children:e.jsxs("div",{className:"flex-fill card flex-shrink-1",children:[e.jsxs("div",{className:"card-header pb-0 d-flex justify-content-between",children:[e.jsxs(f,{to:j(s.ieee_address),children:[e.jsx(N,{disabled:!1,device:s,className:c(w.deviceImage,"me-2 d-inline")}),s.friendly_name,l?` (${m("endpoint")}: ${l})`:""]}),d]}),e.jsx("div",{className:"card-header py-0 d-flex justify-content-between",children:e.jsx("small",{children:s.description})}),e.jsx("div",{className:c("card-body align-items-center row"),children:e.jsx(h,{feature:{features:n},className:"row",type:"composite",device:s,deviceState:r,onChange:t,onRead:a,featureWrapperClass:o,minimal:!0})}),e.jsx(D,{device:s,deviceState:r,lastSeenType:i})]})})},_=y;export{_ as D};
@@ -0,0 +1 @@
1
+ import{E as P,a5 as Ne,a6 as $e,j as c,B as v,r as x,b as y,a7 as Fe,u as Q,w as B,R as V,x as Ae,Y as U}from"./index-6fd02931.js";import{D as q}from"./index-023be162.js";function Te(e){return e.type==="binary"}function ee(e){return e.type==="list"}function Oe(e){return e.type==="numeric"}function Me(e){return e.type==="text"}function Le(e){return e.type==="enum"}function We(e){return e.type==="light"}function Ue(e){return e.type==="switch"}function Ie(e){return e.type==="cover"}function ze(e){return e.type==="lock"}function De(e){return e.type==="fan"}function O(e){return e.type==="composite"&&e.name!=="color_xy"&&e.name!=="color_hs"}function te(e){return e.type==="composite"&&(e.name==="color_xy"||e.name==="color_hs")}function Pe(e){return e.type==="climate"}function Be(e){return ee(e)&&e.name==="gradient"&&e.length_min!==void 0&&e.length_max!==void 0}var Ve=$e,qe=Ne,Ge=Object.prototype,Je=Ge.hasOwnProperty,Ze=qe(function(e,t,n){Je.call(e,n)?e[n].push(t):Ve(e,n,[t])}),He=Ze;const Ye=P(He);var b=(e=>(e[e.NONE=0]="NONE",e[e.ACCESS_STATE=1]="ACCESS_STATE",e[e.ACCESS_WRITE=2]="ACCESS_WRITE",e[e.ACCESS_READ=4]="ACCESS_READ",e))(b||{});const G=e=>{const{value:t,onClick:n,name:r}=e;return c.jsx(v,{className:"btn btn-link",item:t,onClick:n,children:c.jsx(q,{value:t,name:r})})},Ke=e=>{const{onChange:t,value:n,valueOn:r,valueOff:s,minimal:a,name:o}=e,i=f=>t(f.target.checked?r:s),l=n!=null,u=!a||a&&!l;return c.jsxs("div",{children:[u&&c.jsx(G,{value:s,name:o,onClick:t}),l?c.jsx("div",{className:"form-check form-switch form-check-inline align-middle me-0",children:c.jsx("input",{className:"form-check-input",type:"checkbox",checked:n===r,onChange:i})}):c.jsx("i",{className:"fa fa-question",title:"Current value unknown"}),u&&c.jsx(G,{value:r,name:o,onClick:t})]})},Xe=Ke,A=e=>{const{feature:{property:t,unit:n,name:r},deviceState:s}=e;return c.jsxs("div",{children:[t&&c.jsx("strong",{children:c.jsx(q,{value:s[t],name:r})}),n?c.jsx("small",{className:"text-muted ms-1",children:n}):null]})},T=({feature:{access:e}})=>c.jsxs("div",{className:"alert alert-warning p-0",role:"alert",children:["Unknown access ",JSON.stringify(e,null,4)]}),Qe=e=>{const{feature:{access:t=b.ACCESS_WRITE,endpoint:n,name:r,property:s,value_off:a,value_on:o},deviceState:i,onChange:l,minimal:u}=e;return t&b.ACCESS_WRITE?c.jsx(Xe,{onChange:f=>l(n,{[s]:f}),value:i[s],valueOn:o,valueOff:a,minimal:u,name:r}):t&b.ACCESS_STATE?c.jsx(A,{...e}):c.jsx(T,{...e})},et=Qe,tt=e=>c.jsx(R,{type:"climate",...e}),nt=tt,rt={position:[0,25,50,75,100].map(e=>({value:e,name:e+""})),tilt:[0,25,50,75,100].map(e=>({value:e,name:e+""}))},st=e=>c.jsx(R,{type:"cover",...e,stepsConfiguration:rt}),at=st;var ot={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]};const F=ot,ne={};for(const e of Object.keys(F))ne[F[e]]=e;const d={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};var re=d;for(const e of Object.keys(d)){if(!("channels"in d[e]))throw new Error("missing channels property: "+e);if(!("labels"in d[e]))throw new Error("missing channel labels property: "+e);if(d[e].labels.length!==d[e].channels)throw new Error("channel and label counts mismatch: "+e);const{channels:t,labels:n}=d[e];delete d[e].channels,delete d[e].labels,Object.defineProperty(d[e],"channels",{value:t}),Object.defineProperty(d[e],"labels",{value:n})}d.rgb.hsl=function(e){const t=e[0]/255,n=e[1]/255,r=e[2]/255,s=Math.min(t,n,r),a=Math.max(t,n,r),o=a-s;let i,l;a===s?i=0:t===a?i=(n-r)/o:n===a?i=2+(r-t)/o:r===a&&(i=4+(t-n)/o),i=Math.min(i*60,360),i<0&&(i+=360);const u=(s+a)/2;return a===s?l=0:u<=.5?l=o/(a+s):l=o/(2-a-s),[i,l*100,u*100]};d.rgb.hsv=function(e){let t,n,r,s,a;const o=e[0]/255,i=e[1]/255,l=e[2]/255,u=Math.max(o,i,l),f=u-Math.min(o,i,l),h=function(m){return(u-m)/6/f+1/2};return f===0?(s=0,a=0):(a=f/u,t=h(o),n=h(i),r=h(l),o===u?s=r-n:i===u?s=1/3+t-r:l===u&&(s=2/3+n-t),s<0?s+=1:s>1&&(s-=1)),[s*360,a*100,u*100]};d.rgb.hwb=function(e){const t=e[0],n=e[1];let r=e[2];const s=d.rgb.hsl(e)[0],a=1/255*Math.min(t,Math.min(n,r));return r=1-1/255*Math.max(t,Math.max(n,r)),[s,a*100,r*100]};d.rgb.cmyk=function(e){const t=e[0]/255,n=e[1]/255,r=e[2]/255,s=Math.min(1-t,1-n,1-r),a=(1-t-s)/(1-s)||0,o=(1-n-s)/(1-s)||0,i=(1-r-s)/(1-s)||0;return[a*100,o*100,i*100,s*100]};function ct(e,t){return(e[0]-t[0])**2+(e[1]-t[1])**2+(e[2]-t[2])**2}d.rgb.keyword=function(e){const t=ne[e];if(t)return t;let n=1/0,r;for(const s of Object.keys(F)){const a=F[s],o=ct(e,a);o<n&&(n=o,r=s)}return r};d.keyword.rgb=function(e){return F[e]};d.rgb.xyz=function(e){let t=e[0]/255,n=e[1]/255,r=e[2]/255;t=t>.04045?((t+.055)/1.055)**2.4:t/12.92,n=n>.04045?((n+.055)/1.055)**2.4:n/12.92,r=r>.04045?((r+.055)/1.055)**2.4:r/12.92;const s=t*.4124+n*.3576+r*.1805,a=t*.2126+n*.7152+r*.0722,o=t*.0193+n*.1192+r*.9505;return[s*100,a*100,o*100]};d.rgb.lab=function(e){const t=d.rgb.xyz(e);let n=t[0],r=t[1],s=t[2];n/=95.047,r/=100,s/=108.883,n=n>.008856?n**(1/3):7.787*n+16/116,r=r>.008856?r**(1/3):7.787*r+16/116,s=s>.008856?s**(1/3):7.787*s+16/116;const a=116*r-16,o=500*(n-r),i=200*(r-s);return[a,o,i]};d.hsl.rgb=function(e){const t=e[0]/360,n=e[1]/100,r=e[2]/100;let s,a,o;if(n===0)return o=r*255,[o,o,o];r<.5?s=r*(1+n):s=r+n-r*n;const i=2*r-s,l=[0,0,0];for(let u=0;u<3;u++)a=t+1/3*-(u-1),a<0&&a++,a>1&&a--,6*a<1?o=i+(s-i)*6*a:2*a<1?o=s:3*a<2?o=i+(s-i)*(2/3-a)*6:o=i,l[u]=o*255;return l};d.hsl.hsv=function(e){const t=e[0];let n=e[1]/100,r=e[2]/100,s=n;const a=Math.max(r,.01);r*=2,n*=r<=1?r:2-r,s*=a<=1?a:2-a;const o=(r+n)/2,i=r===0?2*s/(a+s):2*n/(r+n);return[t,i*100,o*100]};d.hsv.rgb=function(e){const t=e[0]/60,n=e[1]/100;let r=e[2]/100;const s=Math.floor(t)%6,a=t-Math.floor(t),o=255*r*(1-n),i=255*r*(1-n*a),l=255*r*(1-n*(1-a));switch(r*=255,s){case 0:return[r,l,o];case 1:return[i,r,o];case 2:return[o,r,l];case 3:return[o,i,r];case 4:return[l,o,r];case 5:return[r,o,i]}};d.hsv.hsl=function(e){const t=e[0],n=e[1]/100,r=e[2]/100,s=Math.max(r,.01);let a,o;o=(2-n)*r;const i=(2-n)*s;return a=n*s,a/=i<=1?i:2-i,a=a||0,o/=2,[t,a*100,o*100]};d.hwb.rgb=function(e){const t=e[0]/360;let n=e[1]/100,r=e[2]/100;const s=n+r;let a;s>1&&(n/=s,r/=s);const o=Math.floor(6*t),i=1-r;a=6*t-o,o&1&&(a=1-a);const l=n+a*(i-n);let u,f,h;switch(o){default:case 6:case 0:u=i,f=l,h=n;break;case 1:u=l,f=i,h=n;break;case 2:u=n,f=i,h=l;break;case 3:u=n,f=l,h=i;break;case 4:u=l,f=n,h=i;break;case 5:u=i,f=n,h=l;break}return[u*255,f*255,h*255]};d.cmyk.rgb=function(e){const t=e[0]/100,n=e[1]/100,r=e[2]/100,s=e[3]/100,a=1-Math.min(1,t*(1-s)+s),o=1-Math.min(1,n*(1-s)+s),i=1-Math.min(1,r*(1-s)+s);return[a*255,o*255,i*255]};d.xyz.rgb=function(e){const t=e[0]/100,n=e[1]/100,r=e[2]/100;let s,a,o;return s=t*3.2406+n*-1.5372+r*-.4986,a=t*-.9689+n*1.8758+r*.0415,o=t*.0557+n*-.204+r*1.057,s=s>.0031308?1.055*s**(1/2.4)-.055:s*12.92,a=a>.0031308?1.055*a**(1/2.4)-.055:a*12.92,o=o>.0031308?1.055*o**(1/2.4)-.055:o*12.92,s=Math.min(Math.max(0,s),1),a=Math.min(Math.max(0,a),1),o=Math.min(Math.max(0,o),1),[s*255,a*255,o*255]};d.xyz.lab=function(e){let t=e[0],n=e[1],r=e[2];t/=95.047,n/=100,r/=108.883,t=t>.008856?t**(1/3):7.787*t+16/116,n=n>.008856?n**(1/3):7.787*n+16/116,r=r>.008856?r**(1/3):7.787*r+16/116;const s=116*n-16,a=500*(t-n),o=200*(n-r);return[s,a,o]};d.lab.xyz=function(e){const t=e[0],n=e[1],r=e[2];let s,a,o;a=(t+16)/116,s=n/500+a,o=a-r/200;const i=a**3,l=s**3,u=o**3;return a=i>.008856?i:(a-16/116)/7.787,s=l>.008856?l:(s-16/116)/7.787,o=u>.008856?u:(o-16/116)/7.787,s*=95.047,a*=100,o*=108.883,[s,a,o]};d.lab.lch=function(e){const t=e[0],n=e[1],r=e[2];let s;s=Math.atan2(r,n)*360/2/Math.PI,s<0&&(s+=360);const o=Math.sqrt(n*n+r*r);return[t,o,s]};d.lch.lab=function(e){const t=e[0],n=e[1],s=e[2]/360*2*Math.PI,a=n*Math.cos(s),o=n*Math.sin(s);return[t,a,o]};d.rgb.ansi16=function(e,t=null){const[n,r,s]=e;let a=t===null?d.rgb.hsv(e)[2]:t;if(a=Math.round(a/50),a===0)return 30;let o=30+(Math.round(s/255)<<2|Math.round(r/255)<<1|Math.round(n/255));return a===2&&(o+=60),o};d.hsv.ansi16=function(e){return d.rgb.ansi16(d.hsv.rgb(e),e[2])};d.rgb.ansi256=function(e){const t=e[0],n=e[1],r=e[2];return t===n&&n===r?t<8?16:t>248?231:Math.round((t-8)/247*24)+232:16+36*Math.round(t/255*5)+6*Math.round(n/255*5)+Math.round(r/255*5)};d.ansi16.rgb=function(e){let t=e%10;if(t===0||t===7)return e>50&&(t+=3.5),t=t/10.5*255,[t,t,t];const n=(~~(e>50)+1)*.5,r=(t&1)*n*255,s=(t>>1&1)*n*255,a=(t>>2&1)*n*255;return[r,s,a]};d.ansi256.rgb=function(e){if(e>=232){const a=(e-232)*10+8;return[a,a,a]}e-=16;let t;const n=Math.floor(e/36)/5*255,r=Math.floor((t=e%36)/6)/5*255,s=t%6/5*255;return[n,r,s]};d.rgb.hex=function(e){const n=(((Math.round(e[0])&255)<<16)+((Math.round(e[1])&255)<<8)+(Math.round(e[2])&255)).toString(16).toUpperCase();return"000000".substring(n.length)+n};d.hex.rgb=function(e){const t=e.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!t)return[0,0,0];let n=t[0];t[0].length===3&&(n=n.split("").map(i=>i+i).join(""));const r=parseInt(n,16),s=r>>16&255,a=r>>8&255,o=r&255;return[s,a,o]};d.rgb.hcg=function(e){const t=e[0]/255,n=e[1]/255,r=e[2]/255,s=Math.max(Math.max(t,n),r),a=Math.min(Math.min(t,n),r),o=s-a;let i,l;return o<1?i=a/(1-o):i=0,o<=0?l=0:s===t?l=(n-r)/o%6:s===n?l=2+(r-t)/o:l=4+(t-n)/o,l/=6,l%=1,[l*360,o*100,i*100]};d.hsl.hcg=function(e){const t=e[1]/100,n=e[2]/100,r=n<.5?2*t*n:2*t*(1-n);let s=0;return r<1&&(s=(n-.5*r)/(1-r)),[e[0],r*100,s*100]};d.hsv.hcg=function(e){const t=e[1]/100,n=e[2]/100,r=t*n;let s=0;return r<1&&(s=(n-r)/(1-r)),[e[0],r*100,s*100]};d.hcg.rgb=function(e){const t=e[0]/360,n=e[1]/100,r=e[2]/100;if(n===0)return[r*255,r*255,r*255];const s=[0,0,0],a=t%1*6,o=a%1,i=1-o;let l=0;switch(Math.floor(a)){case 0:s[0]=1,s[1]=o,s[2]=0;break;case 1:s[0]=i,s[1]=1,s[2]=0;break;case 2:s[0]=0,s[1]=1,s[2]=o;break;case 3:s[0]=0,s[1]=i,s[2]=1;break;case 4:s[0]=o,s[1]=0,s[2]=1;break;default:s[0]=1,s[1]=0,s[2]=i}return l=(1-n)*r,[(n*s[0]+l)*255,(n*s[1]+l)*255,(n*s[2]+l)*255]};d.hcg.hsv=function(e){const t=e[1]/100,n=e[2]/100,r=t+n*(1-t);let s=0;return r>0&&(s=t/r),[e[0],s*100,r*100]};d.hcg.hsl=function(e){const t=e[1]/100,r=e[2]/100*(1-t)+.5*t;let s=0;return r>0&&r<.5?s=t/(2*r):r>=.5&&r<1&&(s=t/(2*(1-r))),[e[0],s*100,r*100]};d.hcg.hwb=function(e){const t=e[1]/100,n=e[2]/100,r=t+n*(1-t);return[e[0],(r-t)*100,(1-r)*100]};d.hwb.hcg=function(e){const t=e[1]/100,r=1-e[2]/100,s=r-t;let a=0;return s<1&&(a=(r-s)/(1-s)),[e[0],s*100,a*100]};d.apple.rgb=function(e){return[e[0]/65535*255,e[1]/65535*255,e[2]/65535*255]};d.rgb.apple=function(e){return[e[0]/255*65535,e[1]/255*65535,e[2]/255*65535]};d.gray.rgb=function(e){return[e[0]/100*255,e[0]/100*255,e[0]/100*255]};d.gray.hsl=function(e){return[0,0,e[0]]};d.gray.hsv=d.gray.hsl;d.gray.hwb=function(e){return[0,100,e[0]]};d.gray.cmyk=function(e){return[0,0,0,e[0]]};d.gray.lab=function(e){return[e[0],0,0]};d.gray.hex=function(e){const t=Math.round(e[0]/100*255)&255,r=((t<<16)+(t<<8)+t).toString(16).toUpperCase();return"000000".substring(r.length)+r};d.rgb.gray=function(e){return[(e[0]+e[1]+e[2])/3/255*100]};const W=re;function it(){const e={},t=Object.keys(W);for(let n=t.length,r=0;r<n;r++)e[t[r]]={distance:-1,parent:null};return e}function lt(e){const t=it(),n=[e];for(t[e].distance=0;n.length;){const r=n.pop(),s=Object.keys(W[r]);for(let a=s.length,o=0;o<a;o++){const i=s[o],l=t[i];l.distance===-1&&(l.distance=t[r].distance+1,l.parent=r,n.unshift(i))}}return t}function ut(e,t){return function(n){return t(e(n))}}function ft(e,t){const n=[t[e].parent,e];let r=W[t[e].parent][e],s=t[e].parent;for(;t[s].parent;)n.unshift(t[s].parent),r=ut(W[t[s].parent][s],r),s=t[s].parent;return r.conversion=n,r}var dt=function(e){const t=lt(e),n={},r=Object.keys(t);for(let s=r.length,a=0;a<s;a++){const o=r[a];t[o].parent!==null&&(n[o]=ft(o,t))}return n};const I=re,ht=dt,N={},mt=Object.keys(I);function pt(e){const t=function(...n){const r=n[0];return r==null?r:(r.length>1&&(n=r),e(n))};return"conversion"in e&&(t.conversion=e.conversion),t}function gt(e){const t=function(...n){const r=n[0];if(r==null)return r;r.length>1&&(n=r);const s=e(n);if(typeof s=="object")for(let a=s.length,o=0;o<a;o++)s[o]=Math.round(s[o]);return s};return"conversion"in e&&(t.conversion=e.conversion),t}mt.forEach(e=>{N[e]={},Object.defineProperty(N[e],"channels",{value:I[e].channels}),Object.defineProperty(N[e],"labels",{value:I[e].labels});const t=ht(e);Object.keys(t).forEach(r=>{const s=t[r];N[e][r]=gt(s),N[e][r].raw=pt(s)})});var M=N;const J=(e,t)=>{switch(t){case"color_xy":{const{x:a=0,y:o=0}=e,i=1-a-o,l=1,u=l/o*a,f=l/o*i;return"#"+M.xyz.hex([u*100,l*100,f*100])}case"color_hs":{const{hue:a=0,saturation:o=0}=e;return"#"+M.hsv.hex([a,o,100])}case"color_rgb":const{r:n,g:r,b:s}=e;return"#"+M.rgb.hex([n,r,s]);default:return"#FFFFFF"}},xt=["#FFFFFF","#FDF4DC","#F4FDFF"],bt=["#FF0018","#FFA52C","#FFFF41","#008018","#0000F9","#86007D"];function se(e){const{onChange:t,value:n={},format:r,steps:s=[bt,xt],minimal:a,...o}=e,[i,l]=x.useState(J(n,r));return x.useEffect(()=>{l(J(n,r))},[n,r]),c.jsxs(c.Fragment,{children:[!a&&s.map(u=>c.jsx("div",{className:"btn-group me-2 float-start border",children:u.map(f=>c.jsx(v,{className:"btn",style:{backgroundColor:f},item:f,title:f,onClick:h=>t({hex:h}),children:"   "},f))},JSON.stringify(u))),c.jsx("input",{type:"color",className:"form-control form-control-color",value:i,style:{minWidth:40},onChange:u=>{u.target.value.toLowerCase()!==i.toLowerCase()&&t({hex:u.target.value})},...o})]})}const vt=e=>{var o;const{deviceState:t,feature:n,onChange:r,minimal:s}=e,a={};for(const i of n.features)a[i.name]=((o=t[n.property])==null?void 0:o[i.property])??0;return c.jsx(se,{onChange:i=>r(n.endpoint,{color:i}),value:a,format:n.name,minimal:s})},yt=vt;function C(e){return e===null||["number","string","undefined"].includes(typeof e)}const Ct=e=>{const{onChange:t,values:n,value:r,minimal:s}=e;if(s){const a=o=>{const i=n.find(l=>C(l)?l==o.target.value:l.value==o.target.value);t(i)};return c.jsxs("select",{className:"form-control",onChange:a,value:C(r)?r:r.value,children:[c.jsx("option",{hidden:!0,children:"----"},"hided"),n.map(o=>c.jsx("option",{value:C(o)?o:o.value,children:C(o)?o:o.name},C(o)?o:o.name))]})}return c.jsx("div",{className:"btn-group me-2",children:n.map(a=>c.jsx(v,{className:y("btn btn-outline-secondary",{active:C(a)?a===r:a.value===(C(r)?r:r.value)}),onClick:o=>t(o),item:C(a)?a:a.value,title:C(a)?a:a.description,children:C(a)?c.jsx(q,{value:a,name:""}):a.name},C(a)?a:a.name))})},ae=Ct,jt=4,kt=e=>{const{onChange:t,feature:{access:n=b.ACCESS_WRITE,values:r,endpoint:s,property:a},deviceState:o,minimal:i}=e,l=r.length>jt;return n&b.ACCESS_WRITE?c.jsx(ae,{onChange:u=>t(s,{[a]:u}),values:r,value:o[a],minimal:i||l}):n&b.ACCESS_STATE?c.jsx(A,{...e}):c.jsx(T,{...e})},St=kt,wt={brightness:[0,25,50,75,100].map(e=>({value:Fe(e,[0,100],[0,255]),name:e+"%"})),color_temp:[1e3,2e3,3e3,4e3,5e3,6500].map(e=>({value:1e6/e,name:e+"K"}))},Et=e=>c.jsx(R,{type:"light",...e,stepsConfiguration:wt}),_t=Et,Rt=e=>c.jsx(R,{type:"lock",...e}),Nt=Rt,$t=e=>{const{onChange:t,value:n,valueStep:r,min:s,max:a,unit:o,steps:i,minimal:l,...u}=e,[f,h]=x.useState(n);x.useEffect(()=>{h(n)},[n]);const m=s!==void 0&&a!==void 0;return c.jsxs("div",{className:"input-group align-items-center",children:[!l&&i?c.jsx(ae,{values:i,onChange:t,value:f}):null,m?c.jsx("input",{min:s,max:a,step:r,type:"range",className:"form-range form-control border-0",value:f,onChange:p=>h(p.target.valueAsNumber),onTouchEnd:()=>t(f),onMouseUp:()=>t(f),...u}):null,(!l||!m)&&c.jsx("input",{type:"number",className:y("form-control",{"ms-1":m}),value:f,step:r,onChange:p=>h(p.target.valueAsNumber),onBlur:()=>t(f),onMouseUp:()=>t(f),min:s,max:a,...u,style:m?{maxWidth:"100px"}:{}}),!l&&o?c.jsx("span",{className:"input-group-text",style:{minWidth:"66px"},children:o}):null]})},oe=$t,Ft=e=>{const{feature:{presets:t,access:n=b.ACCESS_WRITE,endpoint:r,property:s,unit:a,value_max:o,value_min:i,value_step:l},deviceState:u,steps:f,onChange:h,minimal:m}=e;return n&b.ACCESS_WRITE?c.jsx(oe,{onChange:p=>h(r,{[s]:p}),value:u[s]??"",min:i,max:o,step:l,steps:t&&t.length?t:f,unit:a,minimal:m}):n&b.ACCESS_STATE?c.jsx(A,{...e}):c.jsx(T,{...e})},At=Ft,Tt=e=>{const{onChange:t,value:n,unit:r,...s}=e,[a,o]=x.useState(n);return x.useEffect(()=>{o(n)},[n]),c.jsxs(x.Fragment,{children:[c.jsx("input",{type:"text",className:"form-control",value:a,onChange:i=>o(i.target.value),onBlur:()=>t(a),...s}),r?c.jsx("span",{className:"input-group-text",style:{minWidth:"66px"},children:r}):null]})},Ot=Tt,Mt=e=>{const{feature:{access:t=b.ACCESS_WRITE,endpoint:n,property:r},deviceState:s,onChange:a}=e;return t&b.ACCESS_WRITE?c.jsx(Ot,{onChange:o=>a(n,{[r]:o}),value:s[r]??""}):t&b.ACCESS_STATE?c.jsx(A,{...e}):c.jsx(T,{...e})},Lt=Mt,Wt=e=>c.jsx(R,{type:"switch",...e}),Ut=Wt,It=e=>c.jsx(R,{type:"fan",...e}),zt=It,Dt=e=>{const{onChange:t,value:n,minimal:r,...s}=e,[a,o]=x.useState(n);x.useEffect(()=>{o(n)},[n]);const i=h=>{o(h),t(h)},l=(h,m)=>{const p=[...a];p[m]=h,i(p)},u=h=>()=>{const m=[...a];m.splice(h,1),i(m)},f=()=>i([...a,0]);return a.length===0?c.jsx("div",{className:"mt-3 mb-3 row",children:c.jsx(v,{className:"btn btn-success col-1 me-2",onClick:f,children:"+"})}):c.jsx("div",{children:a.map((h,m)=>{const p=a.length-1===m;return c.jsxs("div",{className:"mt-3 mb-3 row",children:[c.jsx("div",{className:"col-10",children:c.jsx(oe,{onChange:j=>l(j,m),value:h,minimal:r,...s})}),c.jsxs("div",{className:"btn-group col-2",role:"group",children:[c.jsx(v,{className:"btn btn-danger me-2",onClick:u(m),children:"-"}),c.jsx(v,{className:`btn btn-success ${p?"":"invisible"}`,onClick:f,children:"+"})]})]},m)})})},Pt=Dt,Bt=e=>{var f;const{t}=Q(["featureDescriptions"]),{children:n,feature:r,onRead:s}=e,a=te(r),o=r.property&&r.access&b.ACCESS_READ||a,i=(f=e.parentFeatures)==null?void 0:f[e.parentFeatures.length-1];let l=r.label;i!=null&&i.label&&r.name==="state"&&!["light","switch"].includes(i.type)&&(l=`${i.label} ${r.label.charAt(0).toLowerCase()}${r.label.slice(1)}`);const u=c.jsx("div",{className:"col-12 col-md-3",children:c.jsxs("label",{className:"col-form-label w-100",children:[c.jsxs("div",{className:"d-flex justify-content-between",children:[c.jsx("strong",{title:JSON.stringify(r),children:l}),o?c.jsx(v,{item:r,onClick:h=>{s(r.endpoint,{[h.property]:""})},className:"btn btn-primary btn-sm",children:c.jsx("i",{className:"fa fa-sync"})}):null]}),r.description?c.jsx("small",{className:"d-block text-muted",children:t(r.description)}):null]})});return c.jsxs("div",{className:"row border-bottom py-1 w-100 align-items-center",children:[(o||r.label)&&u,c.jsx("div",{className:"col-12 col-md-9",children:n})]})},Vt=e=>{const{onChange:t,value:n,feature:r,parentFeatures:s,...a}=e,[o,i]=x.useState(n);x.useEffect(()=>{i(n)},[n]);const l=m=>{i(m),t(m)},u=(m,p)=>{const j=[...o];typeof m=="object"&&(m={...o[p],...m}),j[p]=m,l(j)},f=m=>()=>{const p=[...o];p.splice(m,1),l(p)},h=()=>i([...o,{}]);return o.length===0?c.jsx("div",{className:"mt-3 mb-3 row",children:c.jsx(v,{className:"btn btn-success col-1 me-2",onClick:h,children:"+"})}):c.jsx("div",{children:o.map((m,p)=>{const j=o.length-1===p;return c.jsxs("div",{className:"mt-3 mb-3 row",children:[c.jsx("div",{className:"col-10",children:c.jsx(L,{feature:r,device:{},deviceState:m,onChange:(k,E)=>{u(E,p)},onRead:(k,E)=>{},featureWrapperClass:Bt,parentFeatures:s})}),c.jsx("div",{className:"col-2",children:c.jsxs("div",{className:"btn-group",role:"group",children:[c.jsx(v,{className:"btn btn-danger me-2",onClick:f(p),children:"-"}),c.jsx(v,{className:`btn btn-success ${j?"":"invisible"}`,onClick:h,children:"+"})]})})]},p)})})},qt=Vt;class Gt extends x.Component{constructor(t){super(t),this.onChange=o=>{const{endpoint:i,property:l}=this.props.feature;this.setState({value:o}),this.isListRoot()||this.props.onChange(i,l?{[l]:o}:o)},this.onApply=()=>{const{value:o}=this.state,{endpoint:i,property:l}=this.props.feature;this.props.onChange(i,l?{[l]:o}:o)},this.isListRoot=()=>{const{parentFeatures:o}=this.props;return o!==void 0&&(o.length===1||o.length===2&&![void 0,"composite","list"].includes(o[1].type))};const{deviceState:n,feature:r}=this.props,{property:s}=r,a=s?n[s]??[]:[];this.state={value:a}}render(){const{feature:t,minimal:n,parentFeatures:r,t:s}=this.props,{access:a=b.ACCESS_WRITE,item_type:o}=t;if(a&b.ACCESS_WRITE){if(o=="number")return c.jsx(Pt,{onChange:this.onChange,value:this.state.value,minimal:n});{const i=[c.jsx(qt,{feature:o,parentFeatures:[...r,t],onChange:this.onChange,value:this.state.value},"1")];return this.isListRoot()&&i.push(c.jsx("div",{children:c.jsx(v,{className:y("btn btn-primary float-end",{"btn-sm":n}),onClick:this.onApply,children:s("common:apply")})},"2")),i}}else return a&b.ACCESS_STATE?c.jsx(A,{...this.props}):c.jsx(T,{...this.props})}}const Jt=B(["list","common"])(V.memo(Gt)),Z=e=>{e=e.replace("#","");const t=parseInt(e,16),n=t>>16&255,r=t>>8&255,s=t&255;return{r:n,g:r,b:s}},Zt=e=>{const{r:t,g:n,b:r}=e;return"#"+M.rgb.hex([t,n,r])};function Ht(e){const{t:n,minimal:r,onChange:s,feature:{endpoint:a,length_min:o,length_max:i},deviceState:l}=e,[u,f]=x.useState(Array(5).fill({x:0,y:0})),h=(g,S)=>{const _=[...u];_[g]=Z(S),f(_)},m=()=>{const g=[...u];g.push({r:255,g:255,b:255}),f(g)},p=g=>{const S=[...u];S.splice(g,1),f(S)};x.useEffect(()=>{const{gradient:g}=l;g&&g.length>0&&f(g.map(Z))},[l]);const[j,k]=x.useState(!1),[E,w]=x.useState(!1);return x.useEffect(()=>{k(u.length<i),w(u.length>o)},[u,o,i]),c.jsxs("div",{className:"d-flex flex-column gap-1",children:[u.map((g,S)=>c.jsxs("div",{className:"d-flex gap-2",children:[c.jsx(se,{onChange:_=>{h(S,_.hex)},value:g,format:"color_rgb"}),E&&c.jsx(v,{className:"btn btn-danger me-2",onClick:()=>p(S),children:"-"})]},S)),j&&c.jsx(v,{className:"btn btn-success me-2",onClick:m,children:"+"}),c.jsx("div",{children:c.jsx(v,{className:y("btn btn-primary float-end",{"btn-sm":r}),onClick:()=>s(a,{gradient:u.map(Zt)}),children:n("common:apply")})}),","]})}const Yt=B(["gradient","common"])(V.memo(Ht)),L=e=>{const{feature:t,device:n,deviceState:r,stepsConfiguration:s,onRead:a,onChange:o,featureWrapperClass:i,minimal:l,parentFeatures:u}=e,f={key:JSON.stringify(t),device:n,deviceState:r,onChange:o,onRead:a,featureWrapperClass:i,minimal:l,parentFeatures:u},h={key:JSON.stringify(t),feature:t,onRead:a,deviceState:r,parentFeatures:u};if(Te(t))return c.jsx(i,{...h,children:c.jsx(et,{feature:t,...f})});if(Oe(t))return c.jsx(i,{...h,children:c.jsx(At,{feature:t,...f,steps:s==null?void 0:s[t.name]})});if(Be(t))return c.jsx(i,{...h,children:c.jsx(Yt,{feature:t,...f})});if(ee(t))return c.jsx(i,{...h,children:c.jsx(Jt,{feature:t,...f})});if(Me(t))return c.jsx(i,{...h,children:c.jsx(Lt,{feature:t,...f})});if(Le(t))return c.jsx(i,{...h,children:c.jsx(St,{feature:t,...f})});if(We(t))return c.jsx(_t,{feature:t,...f});if(Ue(t))return c.jsx(Ut,{feature:t,...f});if(Ie(t))return c.jsx(at,{feature:t,...f});if(ze(t))return c.jsx(Nt,{feature:t,...f});if(te(t))return c.jsx(i,{...h,children:c.jsx(yt,{feature:t,...f})});if(Pe(t))return c.jsx(nt,{feature:t,...f});if(De(t))return c.jsx(zt,{feature:t,...f});if(O(t)){const m=u&&t.property?r[t.property]:r;return c.jsx(i,{...h,children:c.jsx(R,{type:"composite",feature:t,...f,deviceState:m})})}return c.jsx(i,{...h,children:c.jsx("pre",{children:JSON.stringify(t,null,4)})})};class Kt extends x.Component{constructor(){super(...arguments),this.state={},this.onChange=(t,n)=>{const{onChange:r,feature:s}=this.props;this.setState({...this.state,...n}),this.isCompositeRoot()||(O(s)?r(t,s.property?{[s.property]:{...this.state,...n}}:n):r(t,n))},this.isCompositeRoot=()=>{const{parentFeatures:t}=this.props;return O(this.props.feature)&&t!==void 0&&(t.length===1||t.length===2&&![void 0,"composite","list"].includes(t[1].type))},this.onCompositeFeatureApply=()=>{const{deviceState:t,onChange:n,feature:{endpoint:r,property:s}}=this.props,{state:a}=this,o={...t,...a};n(r,s?{[s]:o}:o)},this.onRead=(t,n)=>{const{onRead:r,feature:s}=this.props;O(s)?r&&r(t,s.property?{[s.property]:n}:n):r&&r(t,n)}}render(){const t="MAGIC_NO_ENDPOINT",{t:n,showEndpointLabels:r=!1,feature:s,device:a,deviceState:o,onRead:i,onChange:l,featureWrapperClass:u,minimal:f}=this.props,{features:h=[]}=s,m=this.props.parentFeatures??[],{state:p}=this,j=!f;let k=[];const E={...o,...p};if(j){const w=Ye(h,g=>g.endpoint??t);w[t]&&(k.push(...w[t].map(g=>c.jsx(L,{feature:g,parentFeatures:[...m,s],device:a,deviceState:E,onChange:this.onChange,onRead:this.onRead,featureWrapperClass:u,minimal:f},JSON.stringify(g)))),delete w[t]);for(const g in w){const S=w[g];k.push(c.jsxs("div",{children:[r?`Endpoint: ${g}`:null,c.jsx("div",{className:"ps-4",children:S.map(_=>c.jsx(L,{feature:_,parentFeatures:m,device:a,deviceState:E,onChange:this.onChange,onRead:this.onRead,featureWrapperClass:u,minimal:f},_.name+_.endpoint))})]},g))}}else{const w=h.map(g=>c.jsx(L,{feature:g,parentFeatures:m,device:a,deviceState:E,onChange:this.onChange,onRead:this.onRead,featureWrapperClass:u,minimal:f},JSON.stringify(g)));k=k.concat(w)}return this.isCompositeRoot()&&k.push(c.jsx("div",{children:c.jsx(v,{className:y("btn btn-primary float-end",{"btn-sm":f}),onClick:this.onCompositeFeatureApply,children:n("common:apply")})},s.name+"apply")),k}}function Xt(e,t){return["deviceState","device","feature"].every(r=>Ae(e[r],t[r]))}const R=B(["composite","common"])(V.memo(Kt,Xt));function Qt(e,t,n){var r=-1,s=e.length;t<0&&(t=-t>s?0:s+t),n=n>s?s:n,n<0&&(n+=s),s=t>n?0:n-t>>>0,t>>>=0;for(var a=Array(s);++r<s;)a[r]=e[r+t];return a}var en=Qt,tn=en;function nn(e,t,n){var r=e.length;return n=n===void 0?r:n,!t&&n>=r?e:tn(e,t,n)}var rn=nn,sn="\\ud800-\\udfff",an="\\u0300-\\u036f",on="\\ufe20-\\ufe2f",cn="\\u20d0-\\u20ff",ln=an+on+cn,un="\\ufe0e\\ufe0f",fn="\\u200d",dn=RegExp("["+fn+sn+ln+un+"]");function hn(e){return dn.test(e)}var ce=hn;function mn(e){return e.split("")}var pn=mn,ie="\\ud800-\\udfff",gn="\\u0300-\\u036f",xn="\\ufe20-\\ufe2f",bn="\\u20d0-\\u20ff",vn=gn+xn+bn,yn="\\ufe0e\\ufe0f",Cn="["+ie+"]",z="["+vn+"]",D="\\ud83c[\\udffb-\\udfff]",jn="(?:"+z+"|"+D+")",le="[^"+ie+"]",ue="(?:\\ud83c[\\udde6-\\uddff]){2}",fe="[\\ud800-\\udbff][\\udc00-\\udfff]",kn="\\u200d",de=jn+"?",he="["+yn+"]?",Sn="(?:"+kn+"(?:"+[le,ue,fe].join("|")+")"+he+de+")*",wn=he+de+Sn,En="(?:"+[le+z+"?",z,ue,fe,Cn].join("|")+")",_n=RegExp(D+"(?="+D+")|"+En+wn,"g");function Rn(e){return e.match(_n)||[]}var Nn=Rn,$n=pn,Fn=ce,An=Nn;function Tn(e){return Fn(e)?An(e):$n(e)}var On=Tn,Mn=rn,Ln=ce,Wn=On,Un=U;function In(e){return function(t){t=Un(t);var n=Ln(t)?Wn(t):void 0,r=n?n[0]:t.charAt(0),s=n?Mn(n,1).join(""):t.slice(1);return r[e]()+s}}var zn=In,Dn=zn,Pn=Dn("toUpperCase"),me=Pn,Bn=U,Vn=me;function qn(e){return Vn(Bn(e).toLowerCase())}var Gn=qn;function Jn(e,t,n,r){var s=-1,a=e==null?0:e.length;for(r&&a&&(n=e[++s]);++s<a;)n=t(n,e[s],s,e);return n}var Zn=Jn;function Hn(e){return function(t){return e==null?void 0:e[t]}}var Yn=Hn,Kn=Yn,Xn={À:"A",Á:"A",Â:"A",Ã:"A",Ä:"A",Å:"A",à:"a",á:"a",â:"a",ã:"a",ä:"a",å:"a",Ç:"C",ç:"c",Ð:"D",ð:"d",È:"E",É:"E",Ê:"E",Ë:"E",è:"e",é:"e",ê:"e",ë:"e",Ì:"I",Í:"I",Î:"I",Ï:"I",ì:"i",í:"i",î:"i",ï:"i",Ñ:"N",ñ:"n",Ò:"O",Ó:"O",Ô:"O",Õ:"O",Ö:"O",Ø:"O",ò:"o",ó:"o",ô:"o",õ:"o",ö:"o",ø:"o",Ù:"U",Ú:"U",Û:"U",Ü:"U",ù:"u",ú:"u",û:"u",ü:"u",Ý:"Y",ý:"y",ÿ:"y",Æ:"Ae",æ:"ae",Þ:"Th",þ:"th",ß:"ss",Ā:"A",Ă:"A",Ą:"A",ā:"a",ă:"a",ą:"a",Ć:"C",Ĉ:"C",Ċ:"C",Č:"C",ć:"c",ĉ:"c",ċ:"c",č:"c",Ď:"D",Đ:"D",ď:"d",đ:"d",Ē:"E",Ĕ:"E",Ė:"E",Ę:"E",Ě:"E",ē:"e",ĕ:"e",ė:"e",ę:"e",ě:"e",Ĝ:"G",Ğ:"G",Ġ:"G",Ģ:"G",ĝ:"g",ğ:"g",ġ:"g",ģ:"g",Ĥ:"H",Ħ:"H",ĥ:"h",ħ:"h",Ĩ:"I",Ī:"I",Ĭ:"I",Į:"I",İ:"I",ĩ:"i",ī:"i",ĭ:"i",į:"i",ı:"i",Ĵ:"J",ĵ:"j",Ķ:"K",ķ:"k",ĸ:"k",Ĺ:"L",Ļ:"L",Ľ:"L",Ŀ:"L",Ł:"L",ĺ:"l",ļ:"l",ľ:"l",ŀ:"l",ł:"l",Ń:"N",Ņ:"N",Ň:"N",Ŋ:"N",ń:"n",ņ:"n",ň:"n",ŋ:"n",Ō:"O",Ŏ:"O",Ő:"O",ō:"o",ŏ:"o",ő:"o",Ŕ:"R",Ŗ:"R",Ř:"R",ŕ:"r",ŗ:"r",ř:"r",Ś:"S",Ŝ:"S",Ş:"S",Š:"S",ś:"s",ŝ:"s",ş:"s",š:"s",Ţ:"T",Ť:"T",Ŧ:"T",ţ:"t",ť:"t",ŧ:"t",Ũ:"U",Ū:"U",Ŭ:"U",Ů:"U",Ű:"U",Ų:"U",ũ:"u",ū:"u",ŭ:"u",ů:"u",ű:"u",ų:"u",Ŵ:"W",ŵ:"w",Ŷ:"Y",ŷ:"y",Ÿ:"Y",Ź:"Z",Ż:"Z",Ž:"Z",ź:"z",ż:"z",ž:"z",IJ:"IJ",ij:"ij",Œ:"Oe",œ:"oe",ʼn:"'n",ſ:"s"},Qn=Kn(Xn),er=Qn,tr=er,nr=U,rr=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,sr="\\u0300-\\u036f",ar="\\ufe20-\\ufe2f",or="\\u20d0-\\u20ff",cr=sr+ar+or,ir="["+cr+"]",lr=RegExp(ir,"g");function ur(e){return e=nr(e),e&&e.replace(rr,tr).replace(lr,"")}var fr=ur,dr=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g;function hr(e){return e.match(dr)||[]}var mr=hr,pr=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;function gr(e){return pr.test(e)}var xr=gr,pe="\\ud800-\\udfff",br="\\u0300-\\u036f",vr="\\ufe20-\\ufe2f",yr="\\u20d0-\\u20ff",Cr=br+vr+yr,ge="\\u2700-\\u27bf",xe="a-z\\xdf-\\xf6\\xf8-\\xff",jr="\\xac\\xb1\\xd7\\xf7",kr="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",Sr="\\u2000-\\u206f",wr=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",be="A-Z\\xc0-\\xd6\\xd8-\\xde",Er="\\ufe0e\\ufe0f",ve=jr+kr+Sr+wr,ye="['’]",H="["+ve+"]",_r="["+Cr+"]",Ce="\\d+",Rr="["+ge+"]",je="["+xe+"]",ke="[^"+pe+ve+Ce+ge+xe+be+"]",Nr="\\ud83c[\\udffb-\\udfff]",$r="(?:"+_r+"|"+Nr+")",Fr="[^"+pe+"]",Se="(?:\\ud83c[\\udde6-\\uddff]){2}",we="[\\ud800-\\udbff][\\udc00-\\udfff]",$="["+be+"]",Ar="\\u200d",Y="(?:"+je+"|"+ke+")",Tr="(?:"+$+"|"+ke+")",K="(?:"+ye+"(?:d|ll|m|re|s|t|ve))?",X="(?:"+ye+"(?:D|LL|M|RE|S|T|VE))?",Ee=$r+"?",_e="["+Er+"]?",Or="(?:"+Ar+"(?:"+[Fr,Se,we].join("|")+")"+_e+Ee+")*",Mr="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",Lr="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",Wr=_e+Ee+Or,Ur="(?:"+[Rr,Se,we].join("|")+")"+Wr,Ir=RegExp([$+"?"+je+"+"+K+"(?="+[H,$,"$"].join("|")+")",Tr+"+"+X+"(?="+[H,$+Y,"$"].join("|")+")",$+"?"+Y+"+"+K,$+"+"+X,Lr,Mr,Ce,Ur].join("|"),"g");function zr(e){return e.match(Ir)||[]}var Dr=zr,Pr=mr,Br=xr,Vr=U,qr=Dr;function Gr(e,t,n){return e=Vr(e),t=n?void 0:t,t===void 0?Br(e)?qr(e):Pr(e):e.match(t)||[]}var Jr=Gr,Zr=Zn,Hr=fr,Yr=Jr,Kr="['’]",Xr=RegExp(Kr,"g");function Qr(e){return function(t){return Zr(Yr(Hr(t).replace(Xr,"")),e,"")}}var Re=Qr,es=Gn,ts=Re,ns=ts(function(e,t,n){return t=t.toLowerCase(),e+(n?es(t):t)}),rs=ns;const ss=P(rs);var as=Re,os=me,cs=as(function(e,t,n){return e+(n?" ":"")+os(t)}),is=cs;const ls=P(is),us=e=>{let t="fa-thermometer-empty";return e>=30?t="fa-thermometer-full":e>=25?t="fa-thermometer-three-quarters":e>=20?t="fa-thermometer-half":e>=15&&(t="fa-thermometer-quarter"),t},fs={humidity:["text-info","fa-tint"],illuminance:["fa-sun"],pressure:["fa-cloud-download-alt"],co2:["fa-atom","text-warning"],voltage:["fa-bolt","text-success"],state:["fa-star-half-alt"],brightness:["fa-sun"],occupancy:["fa-walking"],presence:["fa-person-rays"],current:["fa-copyright","text-warning"],power:["fa-power-off","text-success"],energy:["fa-plug","text-info"],frequency:["fa-wave-square"],tamper:["fa-exclamation-circle","text-danger"],smoke:["fa-smoking","text-danger"],radiation_dose_per_hour:["fa-radiation","text-danger"],radioactive_events_per_minute:["fa-radiation-alt","text-warning"],power_factor:["fa-industry","text-danger"],mode:["fa-user-cog","text-warning"],sound:["fa-volume-up","text-info"],position:["fa-percent","text-info"],alarm:["fa-exclamation-triangle","text-danger"],color_xy:["fa-palette"],color_hs:["fa-palette"],color_temp:["fa-sliders-h"],illuminance_lux:["fa-sun"],soil_moisture:["fa-fill-drip"],water_leak:["fa-water"],week:["fa-calendar-week"],workdays_schedule:["fa-calendar-day","text-info"],holidays_schedule:["fa-calendar-day","text-danger"],away_mode:["fa-plane","text-info"],vibration:["fa-water fa-rotate-270"],power_outage_count:["fa-plug-circle-xmark"],action:["fa-a"],angle_x:["fa-x"],angle_y:["fa-y"],angle_z:["fa-z"],side:["fa-cube"],humidity_alarm:["fa-triangle-exclamation"],temperature_alarm:["fa-triangle-exclamation"]},ds=(e,t)=>{let n=[];switch(e){case"device_temperature":case"temperature":case"local_temperature":n.push(y("text-danger",us(t)));break;case"contact":n.push(y({"fa-door-closed text-muted":t,"fa-door-open text-primary":!t}));break;case"occupancy":n.push(y({"text-warning":t}));break;case"presence":n.push(y({"text-warning":t}));break;case"tamper":n.push(y({"fa-beat-fade":t}));break;case"water_leak":n.push(y({"fa-beat-fade text-primary":t}));break;case"vibration":n.push(y({"fa-shake fa-rotate-270 text-primary":t}));break}return n=[...n,...fs[e]??[]],n.length||n.push("invisible"),y(n)},ps=e=>{const{children:t,feature:n,deviceState:r={}}=e,s=ds(n.name,r[n.property]),{t:a}=Q(["featureNames"]),o=n.name==="state"?n.property:n.name,i=ls(ss(o));return c.jsxs("div",{className:"d-flex align-items-center",children:[s&&c.jsx("div",{className:"me-1",children:c.jsx("i",{className:`fa fa-fw ${s}`})}),c.jsxs("div",{className:"flex-shrink-1 flex-grow-1",children:[a(o,{defaultValue:i}),n.endpoint?` (${n.endpoint})`:null]}),c.jsx("div",{className:"flex-shrink-1",children:t})]})};export{ps as D,L as F,R as T,Bt as a,Pe as b,b as c,Ye as g,We as i};
@@ -0,0 +1 @@
1
+ import{r as g,ae as x,j as o,R as S,u as w,af as v,b as P}from"./index-6fd02931.js";function p(r){"@babel/helpers - typeof";return p=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},p(r)}function E(r,e){if(p(r)!="object"||!r)return r;var t=r[Symbol.toPrimitive];if(t!==void 0){var n=t.call(r,e||"default");if(p(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(r)}function A(r){var e=E(r,"string");return p(e)=="symbol"?e:String(e)}function L(r,e,t){return e=A(e),e in r?Object.defineProperty(r,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):r[e]=t,r}var N=function(r){var e=r.decode,t=e===void 0?!0:e,n=r.crossOrigin,s=n===void 0?"":n;return function(u){return new Promise(function(l,f){var a=new Image;s&&(a.crossOrigin=s),a.onload=function(){t&&a.decode?a.decode().then(l).catch(f):l()},a.onerror=f,a.src=u})}};function y(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(r);e&&(n=n.filter(function(s){return Object.getOwnPropertyDescriptor(r,s).enumerable})),t.push.apply(t,n)}return t}function d(r){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?y(Object(t),!0).forEach(function(n){L(r,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(t)):y(Object(t)).forEach(function(n){Object.defineProperty(r,n,Object.getOwnPropertyDescriptor(t,n))})}return r}var _=function(e){return e.filter(function(t){return t})},D=function(e){return Array.isArray(e)?e:[e]},c={},I=function(e,t){var n=!1;return new Promise(function(s,u){var l=function(a){return t(a).then(function(){n=!0,s(a)})};e.reduce(function(f,a){return f.catch(function(){if(!n)return l(a)})},l(e.shift())).catch(u)})};function R(r){var e=r.srcList,t=r.imgPromise,n=t===void 0?N({decode:!0}):t,s=r.useSuspense,u=s===void 0?!0:s,l=g.useState(!1),f=l[1],a=_(D(e)),i=a.join("");if(c[i]||(c[i]={promise:I(a,n),cache:"pending",error:null}),c[i].cache==="resolved")return{src:c[i].src,isLoading:!1,error:null};if(c[i].cache==="rejected"){if(u)throw c[i].error;return{isLoading:!1,error:c[i].error,src:void 0}}if(c[i].promise.then(function(m){c[i]=d(d({},c[i]),{},{cache:"resolved",src:m}),u||f(i)}).catch(function(m){c[i]=d(d({},c[i]),{},{cache:"rejected",error:m}),u||f(i)}),u)throw c[i].promise;return{isLoading:!0,src:void 0,error:null}}function h(r){const{device:e,type:t,...n}=r,{src:s}=R({srcList:x.map(u=>u(e)).filter(Boolean)});return t==="svg"?o.jsx("image",{crossOrigin:"anonymous",...n,href:s}):o.jsx("img",{alt:"",crossOrigin:"anonymous",src:s})}class b extends S.Component{constructor(e){super(e),this.state={hasError:!1}}componentDidCatch(){this.setState({hasError:!0})}render(){return this.state.hasError?o.jsx(o.Fragment,{children:"ERROR"}):this.props.children}}function T(r){const{t:e}=w("zigbee"),{device:t={},disabled:n,deviceStatus:s,type:u="img",className:l,...f}=r;if(u==="svg")return o.jsx(g.Suspense,{fallback:o.jsx("image",{crossOrigin:"anonymous",...f,href:v}),children:o.jsx(b,{children:o.jsx(h,{type:"svg",device:t,...f})})});const i=((s==null?void 0:s.update)??{}).state==="updating"?o.jsx("i",{title:e("updating_firmware"),className:"fa fa-sync fa-spin position-absolute bottom-0 right-0"}):null,m=t.interviewing?o.jsx("i",{title:e("interviewing"),className:"fa fa-spinner fa-spin position-absolute bottom-0 right-0"}):null,j=!t.interviewing&&!t.interview_completed,O=n?o.jsx("i",{title:e("device_disabled"),className:"fa fa-ban position-absolute bottom-0 right-0"}):null;return o.jsxs("div",{className:P(l,"position-relative"),...f,children:[o.jsx(g.Suspense,{fallback:o.jsx("img",{alt:"",src:v}),children:o.jsx(b,{children:o.jsx(h,{device:t})})}),m,i,O,j&&o.jsx("i",{title:e("interview_failed"),className:"fa fa-exclamation-triangle position-absolute top-0 right-0 text-danger"})]})}export{T as D};
@@ -0,0 +1 @@
1
+ import{r as D,m as S,u as j,j as e,B as b,n as y,c as G,a as R}from"./index-6fd02931.js";import{D as E,E as F,o as w,R as C,A as P}from"./RecallRemove-6919d02e.js";import{D as A}from"./DashboardDevice-0216e0f5.js";import{D as k}from"./DashboardFeatureWrapper-735dbb7f.js";import"./index-023be162.js";import"./DeviceImage-1eac1b50.js";function I(n){const[c,r]=D.useState(""),[i,m]=D.useState(""),{addDeviceToGroup:v,group:d,devices:t}=n,l=t[i],a=S(l),{t:s}=j(["groups","zigbee"]),x=()=>{v(c?`${i}/${c}`:i,d.friendly_name)},g=o=>{const p=S(o);m(o.ieee_address),r(p[0])},u=o=>{r(o)};return e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"mb-3",children:[e.jsx(E,{label:s("zigbee:device"),value:i,devices:t,onChange:g}),e.jsx(F,{label:s("zigbee:endpoint"),values:a,value:c,onChange:u})]}),e.jsx("div",{className:"d-flex",children:e.jsx("div",{className:"ms-auto",children:e.jsx(b,{type:"button",onClick:x,className:"btn btn-primary",children:s("add_to_group")})})})]})}function T(n){const{t:c}=j("devicePage"),{removeDeviceFromGroup:r,groupAddress:i,devices:m,deviceStates:v,bridgeInfo:d}=n,{endpoint:t,ieee_address:l}=i,a=m[l]??{ieee_address:l,friendly_name:c("unknown_device")},s=v[a.friendly_name]??{},{setDeviceState:x,getDeviceState:g}=n;let u=[];return a.definition&&(u=(a.definition.exposes??[]).map(o=>w(o,s)).filter(o=>o)),e.jsx(A,{feature:{features:u},device:a,endpoint:t,deviceState:s,onChange:(o,p)=>x(a.friendly_name,p),onRead:(o,p)=>g(a.friendly_name,p),featureWrapperClass:k,lastSeenType:d.config.advanced.last_seen,controls:e.jsx(b,{prompt:!0,item:a.friendly_name,onClick:r,className:"btn btn-danger btn-sm float-right",children:e.jsx("i",{className:"fa fa-trash"})})})}function $(n){const{group:c,removeDeviceFromGroup:r,devices:i,deviceStates:m,bridgeInfo:v}=n,{setStateValue:d,setDeviceState:t,getDeviceState:l}=n,a=s=>{r(c.friendly_name,s)};return e.jsx("div",{className:"row",children:c.members.map(s=>e.jsx(T,{removeDeviceFromGroup:a,devices:i,groupAddress:s,deviceStates:m,bridgeInfo:v,setStateValue:d,setDeviceState:t,getDeviceState:l},`${s.ieee_address}-${s.endpoint}`))})}function z(n){const{devices:c,deviceStates:r,bridgeInfo:i,groups:m}=n,{match:v}=n,d=parseInt(v.params.groupId,10),t=m.find(f=>f.id===d)||{id:d,friendly_name:"Unknown group",members:[],scenes:[]},{setStateValue:l,setDeviceState:a,getDeviceState:s}=n,{addDeviceToGroup:x,removeDeviceFromGroup:g}=n,{sceneStore:u,sceneRemoveAll:o,sceneRecall:p,sceneRemove:N}=n,{t:_}=j(["groups"]);return e.jsxs("div",{children:[e.jsxs("h5",{children:[_("group_name"),": ",t.friendly_name," (#",t.id,")"]}),e.jsxs("div",{className:"row",children:[e.jsx("div",{className:"col-12 col-sm-4 col-xxl-4 d-flex",children:e.jsx("div",{className:"card w-100",children:e.jsx("div",{className:"card-body",children:e.jsx("div",{className:"form-group",children:e.jsx(I,{addDeviceToGroup:x,devices:c,group:t})})})})}),e.jsx("div",{className:"col-12 col-sm-4 col-xxl-4 d-flex",children:e.jsx("div",{className:"card w-100",children:e.jsx("div",{className:"card-body",children:e.jsx("div",{className:"form-group",children:e.jsx(C,{target:t,sceneStore:u,sceneRecall:p,sceneRemove:N,sceneRemoveAll:o,deviceState:{}})})})})}),e.jsx("div",{className:"col-12 col-sm-4 col-xxl-4 d-flex",children:e.jsx("div",{className:"card w-100",children:e.jsx("div",{className:"card-body",children:e.jsx("div",{className:"form-group",children:e.jsx(P,{sceneStore:u,target:t,deviceState:{},setDeviceState:(f,h)=>Promise.resolve()})})})})})]}),e.jsx($,{group:t,devices:c,deviceStates:r,bridgeInfo:i,removeDeviceFromGroup:(f,h)=>{g(h,f)},setStateValue:l,setDeviceState:a,getDeviceState:s})]})}const V=y(z),W=["groups","devices","deviceStates","bridgeInfo"],K=G(W,R)(V);export{K as ConnectedGroupPage};
@@ -1 +1 @@
1
- import{s as y,j as t,r as o,b}from"./index-fb4a4614.js";import{g as u,r as c,G as E,p as F}from"./persist-47ba9205.js";const P=(r,x,l,a)=>{if(a){const{instanceId:i}=a,{sortBy:n,globalFilter:d}=r;F(i,{sortBy:n,globalFilter:d})}return r},R=({columns:r,data:x,id:l,initialState:a={}})=>{const i=y.get(u(l))||a,{getTableProps:n,getTableBodyProps:d,headerGroups:g,rows:h,prepareRow:m,state:j,visibleColumns:S,setGlobalFilter:f}=c.useTable({instanceId:l,stateReducer:P,columns:r,data:x,autoResetSortBy:!1,autoResetFilters:!1,initialState:i},c.useGlobalFilter,c.useSortBy);return t.jsxs("table",{...n(),className:"table responsive",children:[t.jsxs("thead",{children:[t.jsx("tr",{children:t.jsx("th",{colSpan:S.length+1,children:t.jsx(E,{globalFilter:j.globalFilter,setGlobalFilter:f})})}),g.map((s,p)=>o.createElement("tr",{...s.getHeaderGroupProps(),key:p},t.jsx("th",{className:"text-nowrap",children:"#"}),s.headers.map(e=>o.createElement("th",{className:"text-nowrap",...e.getHeaderProps(e.getSortByToggleProps()),key:e.id},t.jsx("span",{className:b({"btn-link me-1":e.canSort}),children:e.render("Header")}),t.jsx("span",{children:t.jsx("i",{className:b("fa",{"fa-sort-amount-down invisible":!e.isSorted,"fa-sort-amount-down-alt":e.isSorted&&!e.isSortedDesc,"fa-sort-amount-down":e.isSorted&&e.isSortedDesc})})})))))]}),t.jsx("tbody",{...d(),children:h.map((s,p)=>(m(s),o.createElement("tr",{...s.getRowProps(),key:s.id},t.jsx("td",{children:t.jsx("div",{className:"font-weight-bold",children:p+1})}),s.cells.map(e=>o.createElement("td",{...e.getCellProps(),key:e.column.id},e.render("Cell"))))))})]})};export{R as T};
1
+ import{s as y,j as t,r as o,b}from"./index-6fd02931.js";import{g as u,r as c,G as E,p as F}from"./persist-203c6c60.js";const P=(r,x,l,a)=>{if(a){const{instanceId:i}=a,{sortBy:n,globalFilter:d}=r;F(i,{sortBy:n,globalFilter:d})}return r},R=({columns:r,data:x,id:l,initialState:a={}})=>{const i=y.get(u(l))||a,{getTableProps:n,getTableBodyProps:d,headerGroups:g,rows:h,prepareRow:m,state:j,visibleColumns:S,setGlobalFilter:f}=c.useTable({instanceId:l,stateReducer:P,columns:r,data:x,autoResetSortBy:!1,autoResetFilters:!1,initialState:i},c.useGlobalFilter,c.useSortBy);return t.jsxs("table",{...n(),className:"table responsive",children:[t.jsxs("thead",{children:[t.jsx("tr",{children:t.jsx("th",{colSpan:S.length+1,children:t.jsx(E,{globalFilter:j.globalFilter,setGlobalFilter:f})})}),g.map((s,p)=>o.createElement("tr",{...s.getHeaderGroupProps(),key:p},t.jsx("th",{className:"text-nowrap",children:"#"}),s.headers.map(e=>o.createElement("th",{className:"text-nowrap",...e.getHeaderProps(e.getSortByToggleProps()),key:e.id},t.jsx("span",{className:b({"btn-link me-1":e.canSort}),children:e.render("Header")}),t.jsx("span",{children:t.jsx("i",{className:b("fa",{"fa-sort-amount-down invisible":!e.isSorted,"fa-sort-amount-down-alt":e.isSorted&&!e.isSortedDesc,"fa-sort-amount-down":e.isSorted&&e.isSortedDesc})})})))))]}),t.jsx("tbody",{...d(),children:h.map((s,p)=>(m(s),o.createElement("tr",{...s.getRowProps(),key:s.id},t.jsx("td",{children:t.jsx("div",{className:"font-weight-bold",children:p+1})}),s.cells.map(e=>o.createElement("td",{...e.getCellProps(),key:e.column.id},e.render("Cell"))))))})]})};export{R as T};
@@ -1 +1 @@
1
- import{u as f,j as e,K as y,r as b,B as j}from"./index-fb4a4614.js";import{i as S,g as _,T as C,D as F}from"./DashboardFeatureWrapper-ef543cb2.js";function R(s){const{value:n,values:a,disabled:m,onChange:t,label:l,...c}=s,{t:p}=f("common"),o=r=>{t(r.target.value)},i=a.length==1,u=a.map(r=>e.jsx("option",{value:r,children:r},r));return u.unshift(e.jsx("option",{hidden:!0,children:p("select_endpoint")},"hided")),e.jsxs("div",{className:"form-group",children:[l&&e.jsx("label",{className:"form-label",children:l}),e.jsx("select",{disabled:n&&i||m,value:n,className:"form-control",title:i?p("the_only_endpoint"):"",onChange:o,...c,children:u})]})}function I(s){const{t:n}=f("common"),{devices:a,value:m,label:t,onChange:l,groups:c=[],...p}=s,o=r=>{const{value:d}=r.target;if(a[d])l(a[d],"device");else{const x=c.find(h=>parseInt(d,10)===h.id);l(x,"group")}};let i=[e.jsx("option",{hidden:!0,children:n("select_device")},"hidden")];const u=[];if(Object.values(a).sort((r,d)=>r.friendly_name.localeCompare(d.friendly_name)).forEach(r=>{var d;u.push(e.jsx("option",{title:(d=r.definition)==null?void 0:d.description,value:r.ieee_address,children:y(r)},r.ieee_address))}),c&&c.length){const r=c.map(d=>e.jsx("option",{value:d.id,children:d.friendly_name},d.friendly_name));i.push(e.jsx("optgroup",{label:n("groups"),children:r},"Groups")),i.push(e.jsx("optgroup",{label:n("devices"),children:u},"Devices"))}else i=i.concat(u);return e.jsxs("div",{className:"form-group",children:[t&&e.jsx("label",{className:"form-label",children:t}),e.jsx("select",{value:m,onChange:o,className:"form-control",...p,children:i})]})}const k=["state","color_temp","color","transition","brightness"];function v(s,n={}){let{property:a,name:m,features:t}=s;if(S(s)&&(t=t.map(l=>v(l,a?n[a]:n)).filter(l=>l),t=Object.values(_(t,"property")).map(l=>l[0])),k.includes(m)||Array.isArray(t)&&t.length>0)return{...s,features:t}}function g(s){if(s.endpoints){const n=[];return Object.entries(s.endpoints).forEach(([a,m])=>{var t;(t=m.scenes)==null||t.forEach(l=>n.push({...l,endpoint:a}))}),n}else if(s.scenes)return s.scenes;return[]}const D=(s,n=[])=>s>=0&&s<=255&&!n.find(a=>a.id==s);function P(s){var x;const{target:n,deviceState:a,sceneStore:m,setDeviceState:t}=s,l=g(n),{t:c}=f("scene"),[p,o]=b.useState(0),[i,u]=b.useState(""),r=`Scene ${p}`;let d=[];return n.definition&&(d=(((x=n.definition)==null?void 0:x.exposes)??[]).map(h=>v(h,a)).filter(h=>h)),e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"mb-3",children:[e.jsx("label",{htmlFor:"add-scene",className:"form-label",children:c("scene_id")}),e.jsx("input",{id:"add-scene",className:"form-control",min:0,max:255,value:p,type:"number",onChange:h=>o(h.target.valueAsNumber)}),e.jsx("label",{htmlFor:"add-scene-name",className:"form-label",children:c("scene_name")}),e.jsx("input",{id:"add-scene-name",className:"form-control",value:i,type:"string",onChange:h=>u(h.target.value),placeholder:r}),e.jsx(C,{feature:{features:d},className:"row",type:"composite",device:n,deviceState:a,onChange:(h,N)=>{t(n.friendly_name,N)},featureWrapperClass:F,minimal:!0})]}),e.jsx("div",{className:"d-flex",children:e.jsx("button",{disabled:!D(p,l),type:"submit",onClick:()=>m(n.friendly_name,{id:p,name:i||r}),className:"btn btn-primary ms-auto",children:c("store")})})]})}function E(s){const{t:n}=f("scene"),{onSceneSelected:a,scenes:m=[],value:t}=s,l=o=>{const[i,u]=o.target.value.split("-");a({id:parseInt(i,10),endpoint:u})},c=e.jsxs(e.Fragment,{children:[e.jsx("label",{htmlFor:"rr-scene",className:"form-label",children:n("scene_name")}),e.jsxs("select",{onChange:l,id:"rr-scene",className:"form-select",children:[e.jsx("option",{hidden:!0,children:n("select_scene")},"hidden"),m.map(o=>e.jsx("option",{value:`${o.id}-${o.endpoint}`,children:o.name},`${o.id}-${o.endpoint}`))]})]}),p=e.jsxs(e.Fragment,{children:[e.jsx("label",{htmlFor:"rr-scene",className:"form-label",children:n("scene_id")}),e.jsx("input",{min:0,value:t.id,type:"number",className:"form-control",id:"rr-scene",onChange:o=>a({id:o.target.valueAsNumber,endpoint:void 0})})]});return e.jsx(e.Fragment,{children:m.length>0?c:p})}function $(s){const{sceneRecall:n,sceneRemove:a,sceneRemoveAll:m,target:t}=s,{t:l}=f("scene"),[c,p]=b.useState({id:0,endpoint:void 0}),o=c.id===void 0,i=g(t),{friendly_name:u}=t;return e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"mb-3",children:e.jsx(E,{onSceneSelected:p,value:c,scenes:i})}),e.jsxs("div",{className:"d-flex",children:[e.jsxs("div",{className:"btn-group ms-auto pe-1",children:[e.jsx("button",{disabled:o,onClick:()=>n(u,c.id,c.endpoint),type:"submit",className:"btn btn-success",children:l("recall")}),e.jsx(j,{disabled:o,prompt:!0,onClick:()=>a(u,c.id,c.endpoint),type:"submit",className:"btn btn-danger",children:l("remove")})]}),e.jsx(j,{prompt:!0,onClick:()=>m(u,""),type:"submit",className:"btn btn-danger",children:l("remove_all")})]})]})}export{P as A,I as D,R as E,$ as R,v as o};
1
+ import{u as f,j as e,X as y,r as b,B as j}from"./index-6fd02931.js";import{i as S,g as _,T as C,D as F}from"./DashboardFeatureWrapper-735dbb7f.js";function R(s){const{value:n,values:a,disabled:m,onChange:t,label:l,...c}=s,{t:p}=f("common"),o=r=>{t(r.target.value)},i=a.length==1,u=a.map(r=>e.jsx("option",{value:r,children:r},r));return u.unshift(e.jsx("option",{hidden:!0,children:p("select_endpoint")},"hided")),e.jsxs("div",{className:"form-group",children:[l&&e.jsx("label",{className:"form-label",children:l}),e.jsx("select",{disabled:n&&i||m,value:n,className:"form-control",title:i?p("the_only_endpoint"):"",onChange:o,...c,children:u})]})}function I(s){const{t:n}=f("common"),{devices:a,value:m,label:t,onChange:l,groups:c=[],...p}=s,o=r=>{const{value:d}=r.target;if(a[d])l(a[d],"device");else{const x=c.find(h=>parseInt(d,10)===h.id);l(x,"group")}};let i=[e.jsx("option",{hidden:!0,children:n("select_device")},"hidden")];const u=[];if(Object.values(a).sort((r,d)=>r.friendly_name.localeCompare(d.friendly_name)).forEach(r=>{var d;u.push(e.jsx("option",{title:(d=r.definition)==null?void 0:d.description,value:r.ieee_address,children:y(r)},r.ieee_address))}),c&&c.length){const r=c.map(d=>e.jsx("option",{value:d.id,children:d.friendly_name},d.friendly_name));i.push(e.jsx("optgroup",{label:n("groups"),children:r},"Groups")),i.push(e.jsx("optgroup",{label:n("devices"),children:u},"Devices"))}else i=i.concat(u);return e.jsxs("div",{className:"form-group",children:[t&&e.jsx("label",{className:"form-label",children:t}),e.jsx("select",{value:m,onChange:o,className:"form-control",...p,children:i})]})}const k=["state","color_temp","color","transition","brightness"];function v(s,n={}){let{property:a,name:m,features:t}=s;if(S(s)&&(t=t.map(l=>v(l,a?n[a]:n)).filter(l=>l),t=Object.values(_(t,"property")).map(l=>l[0])),k.includes(m)||Array.isArray(t)&&t.length>0)return{...s,features:t}}function g(s){if(s.endpoints){const n=[];return Object.entries(s.endpoints).forEach(([a,m])=>{var t;(t=m.scenes)==null||t.forEach(l=>n.push({...l,endpoint:a}))}),n}else if(s.scenes)return s.scenes;return[]}const D=(s,n=[])=>s>=0&&s<=255&&!n.find(a=>a.id==s);function P(s){var x;const{target:n,deviceState:a,sceneStore:m,setDeviceState:t}=s,l=g(n),{t:c}=f("scene"),[p,o]=b.useState(0),[i,u]=b.useState(""),r=`Scene ${p}`;let d=[];return n.definition&&(d=(((x=n.definition)==null?void 0:x.exposes)??[]).map(h=>v(h,a)).filter(h=>h)),e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"mb-3",children:[e.jsx("label",{htmlFor:"add-scene",className:"form-label",children:c("scene_id")}),e.jsx("input",{id:"add-scene",className:"form-control",min:0,max:255,value:p,type:"number",onChange:h=>o(h.target.valueAsNumber)}),e.jsx("label",{htmlFor:"add-scene-name",className:"form-label",children:c("scene_name")}),e.jsx("input",{id:"add-scene-name",className:"form-control",value:i,type:"string",onChange:h=>u(h.target.value),placeholder:r}),e.jsx(C,{feature:{features:d},className:"row",type:"composite",device:n,deviceState:a,onChange:(h,N)=>{t(n.friendly_name,N)},featureWrapperClass:F,minimal:!0})]}),e.jsx("div",{className:"d-flex",children:e.jsx("button",{disabled:!D(p,l),type:"submit",onClick:()=>m(n.friendly_name,{id:p,name:i||r}),className:"btn btn-primary ms-auto",children:c("store")})})]})}function E(s){const{t:n}=f("scene"),{onSceneSelected:a,scenes:m=[],value:t}=s,l=o=>{const[i,u]=o.target.value.split("-");a({id:parseInt(i,10),endpoint:u})},c=e.jsxs(e.Fragment,{children:[e.jsx("label",{htmlFor:"rr-scene",className:"form-label",children:n("scene_name")}),e.jsxs("select",{onChange:l,id:"rr-scene",className:"form-select",children:[e.jsx("option",{hidden:!0,children:n("select_scene")},"hidden"),m.map(o=>e.jsx("option",{value:`${o.id}-${o.endpoint}`,children:o.name},`${o.id}-${o.endpoint}`))]})]}),p=e.jsxs(e.Fragment,{children:[e.jsx("label",{htmlFor:"rr-scene",className:"form-label",children:n("scene_id")}),e.jsx("input",{min:0,value:t.id,type:"number",className:"form-control",id:"rr-scene",onChange:o=>a({id:o.target.valueAsNumber,endpoint:void 0})})]});return e.jsx(e.Fragment,{children:m.length>0?c:p})}function $(s){const{sceneRecall:n,sceneRemove:a,sceneRemoveAll:m,target:t}=s,{t:l}=f("scene"),[c,p]=b.useState({id:0,endpoint:void 0}),o=c.id===void 0,i=g(t),{friendly_name:u}=t;return e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"mb-3",children:e.jsx(E,{onSceneSelected:p,value:c,scenes:i})}),e.jsxs("div",{className:"d-flex",children:[e.jsxs("div",{className:"btn-group ms-auto pe-1",children:[e.jsx("button",{disabled:o,onClick:()=>n(u,c.id,c.endpoint),type:"submit",className:"btn btn-success",children:l("recall")}),e.jsx(j,{disabled:o,prompt:!0,onClick:()=>a(u,c.id,c.endpoint),type:"submit",className:"btn btn-danger",children:l("remove")})]}),e.jsx(j,{prompt:!0,onClick:()=>m(u,""),type:"submit",className:"btn btn-danger",children:l("remove_all")})]})]})}export{P as A,I as D,R as E,$ as R,v as o};
@@ -0,0 +1 @@
1
+ import{aa as g,a0 as o,ab as u,ac as l,ad as I}from"./index-6fd02931.js";var c=g,K=o,O=u,f=l,P=I;function S(a,r,v,d){if(!f(a))return a;r=K(r,a);for(var i=-1,e=r.length,x=e-1,n=a;n!=null&&++i<e;){var s=P(r[i]),t=v;if(s==="__proto__"||s==="constructor"||s==="prototype")return a;if(i!=x){var _=n[s];t=d?d(_,s,n):void 0,t===void 0&&(t=f(_)?_:O(r[i+1])?[]:{})}c(n,s,t),n=n[s]}return a}var m=S;export{m as _};
@@ -0,0 +1 @@
1
+ import{a8 as d,u as p,j as t,b,l as h,a9 as y,r as w}from"./index-6fd02931.js";var m=[60,60,24,7,365/7/12,12];function x(e){return e instanceof Date?e:!isNaN(e)||/^\d+$/.test(e)?new Date(parseInt(e)):(e=(e||"").trim().replace(/\.\d+/,"").replace(/-/,"/").replace(/-/,"/").replace(/(\d)T(\d)/,"$1 $2").replace(/Z/," UTC").replace(/([+-]\d\d):?(\d\d)/," $1$2"),new Date(e))}function j(e,a){var n=e<0?1:0;e=Math.abs(e);for(var r=e,s=0;e>=m[s]&&s<m.length;s++)e/=m[s];return e=Math.floor(e),s*=2,e>(s===0?9:1)&&(s+=1),a(e,s,r)[n].replace("%s",e.toString())}function _(e,a){var n=a?x(a):new Date;return(+n-+x(e))/1e3}var N=function(e,a,n){var r=_(e,n&&n.relativeDate);return j(r,d(a))};function k(e){const{value:a,name:n}=e,{t:r}=p("values"),s={contact:new Map([[!0,r("closed")],[!1,r("open")]]),occupancy:new Map([[!0,r("occupied")],[!1,r("clear")]]),water_leak:new Map([[!0,t.jsx("span",{className:b("text-danger","animation-blinking"),children:r("leaking")},"Leaking")],[!1,r("clear")]]),tamper:new Map([[!0,t.jsx("span",{className:b("text-danger","animation-blinking"),children:r("tampered")},"tampered")],[!1,r("clear")]]),supported:new Map([[!0,r("supported")],[!1,r("not_supported")]]),_default:new Map([[!0,r("true")],[!1,r("false")]])},i=s[n]||s._default;return t.jsx(t.Fragment,{children:i.get(a)})}function T(e){const{t:a}=p("values"),{value:n}=e;switch(typeof n){case"boolean":return t.jsx(k,{...e});case"undefined":return t.jsx(t.Fragment,{children:"N/A"});case"object":return t.jsx(t.Fragment,{children:n===null?a("null"):JSON.stringify(n)});case"string":return t.jsx(t.Fragment,{children:n===""?t.jsx("small",{className:"text-muted",children:a("empty_string")}):n});default:return t.jsx(t.Fragment,{children:JSON.stringify(n)})}}function L(e){const{i18n:a}=p(),{state:n,lastSeenType:r}=e,s=h(n,r);return s?t.jsx(t.Fragment,{children:N(s,a.language)}):t.jsx(t.Fragment,{children:"N/A"})}const D="_plug_1sba2_1",M={plug:D},F=({device:e,deviceState:a,showLevel:n,...r})=>{const{t:s}=p("zigbee");let i;switch(e!==void 0&&(i=e.power_source),i){case"Battery":let g=s(y(i)),u="",l="fa-question",o,f,c;if(a!==void 0&&((a==null?void 0:a.battery)!==void 0&&(o=a.battery),(a==null?void 0:a.battery_state)!==void 0&&(f=a.battery_state),(a==null?void 0:a.battery_low)!==void 0&&(c=a.battery_low)),o!==void 0)if(u=o+"%",o>=85)l="fa-battery-full";else if(o>=65)l="fa-battery-three-quarters";else if(o>=40)l="fa-battery-half";else if(o>=20)l="fa-battery-quarter";else if(o>=10)l="fa-battery-empty animation-blinking";else return t.jsxs("span",{className:"animation-blinking text-danger",role:"alert",children:[o,"%"]});else if(f!==void 0)switch(u=f,f){case"high":l="fa-battery-full";break;case"medium":l="fa-battery-half";break;case"low":l="fa-battery-empty animation-blinking";break}else c!==void 0&&(u=c?"LOW":"OK",l=c?"fa-battery-empty":"fa-battery-full");return c===!0&&(l+=" animation-blinking text-danger"),u!==""&&(g+=", "+s("power_level")+`: ${u}`),t.jsxs(w.Fragment,{children:[n?t.jsxs("span",{className:"pe-2",children:[s("battery")," ",u]}):null,t.jsx("i",{className:`fa ${l}`,title:g,...r})]});case"Mains (single phase)":case"DC Source":return t.jsx("i",{className:`fa fa-plug ${M.plug}`,title:s(y(i)),...r});default:return t.jsx("i",{className:"fa fa-question",title:i,...r})}},v=F;export{T as D,L,v as P};
Binary file
@@ -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-fb4a4614.js";import{T as x}from"./ReactTableCom-5f5db069.js";import"./persist-47ba9205.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-6fd02931.js";import{T as x}from"./ReactTableCom-a25763b2.js";import"./persist-203c6c60.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
@@ -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-fb4a4614.js";import{T as y}from"./ReactTableCom-5f5db069.js";import"./persist-47ba9205.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-6fd02931.js";import{T as y}from"./ReactTableCom-a25763b2.js";import"./persist-203c6c60.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
@@ -0,0 +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-6fd02931.js";import{D as x}from"./DeviceImage-1eac1b50.js";import{V as v,M as k,O}from"./vendor-links-5848ee9a.js";import{T as A}from"./ReactTableCom-a25763b2.js";import"./persist-203c6c60.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"],L=m(C,p)(g(["ota","zigbee","common"])(D));export{L as ConnectedOtaPage};
Binary file
@@ -1,4 +1,4 @@
1
- import{j as e,B as c,N as m,u,e as E,r as l,M as g,f as C,h as v,k as b,_ as j,c as _,a as y,w as N}from"./index-fb4a4614.js";const f=`class MyExampleExtension_TS_ {
1
+ import{j as e,B as c,N as m,u,e as E,r as l,M as g,f as C,h as v,k as b,_ as j,c as _,a as y,w as N}from"./index-6fd02931.js";const f=`class MyExampleExtension_TS_ {
2
2
  constructor(zigbee, mqtt, state, publishEntityState, eventBus, settings, logger) {
3
3
  logger.info('Loaded MyExampleExtension_TS_');
4
4
  mqtt.publish('example/extension', 'hello from MyExampleExtension_TS_');
@@ -33,4 +33,4 @@ import{j as e,B as c,N as m,u,e as E,r as l,M as g,f as C,h as v,k as b,_ as j,c
33
33
  }
34
34
 
35
35
  module.exports = MyExampleExtension_TS_;
36
- `,S=m.create(r=>{const{updateExtensionCode:t,onCreated:o,ts:n}=r,{t:a}=u(["extensions","common"]),s=E(),[i,x]=l.useState(`example-user-extension${n}.js`),d=f.replace(/_TS_/g,n.toString()),h=()=>{t({name:i,code:d}),o({name:i,code:d}),s.remove()};return e.jsxs(g,{isOpen:s.visible,children:[e.jsx(C,{children:a("create_new_extension")}),e.jsxs(v,{children:[e.jsx("label",{className:"form-label",children:a("extension_name_propmt")}),e.jsx("input",{type:"text",className:"form-control",value:i,onChange:p=>x(p.target.value)})]}),e.jsxs(b,{children:[e.jsx("button",{type:"button",className:"btn btn-secondary",onClick:s.remove,children:a("common:close")}),e.jsx("button",{type:"button",className:"btn btn-primary",onClick:h,children:a("common:ok")})]})]})});function M(r){return e.jsx(c,{className:"btn btn-success me-2",onClick:()=>m.show(S,{ts:Date.now(),...r}),children:e.jsx("i",{className:"fa fa-plus"})})}const T=l.lazy(()=>j(()=>import("./CodeEditor-ee543824.js"),["./CodeEditor-ee543824.js","./index-fb4a4614.js","./index-654e4a69.css"],import.meta.url));class k extends l.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:a}=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(M,{updateExtensionCode:a,onCreated:s=>this.setState({currentExtension:s.name})}),e.jsx(c,{prompt:!0,disabled:!t,onClick:this.removeExtension,className:"btn btn-danger me-2",children:e.jsx("i",{className:"fa fa-trash"})}),e.jsx(c,{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,a=((s=o.find(i=>i.name===t))==null?void 0:s.code)??"";return e.jsx(T,{value:a,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 B=["extensions","theme"],q=_(B,y)(N("extensions")(k));export{q as ConnectedExtensionsEditorPage};
36
+ `,S=m.create(r=>{const{updateExtensionCode:t,onCreated:o,ts:n}=r,{t:a}=u(["extensions","common"]),s=E(),[i,x]=l.useState(`example-user-extension${n}.js`),d=f.replace(/_TS_/g,n.toString()),h=()=>{t({name:i,code:d}),o({name:i,code:d}),s.remove()};return e.jsxs(g,{isOpen:s.visible,children:[e.jsx(C,{children:a("create_new_extension")}),e.jsxs(v,{children:[e.jsx("label",{className:"form-label",children:a("extension_name_propmt")}),e.jsx("input",{type:"text",className:"form-control",value:i,onChange:p=>x(p.target.value)})]}),e.jsxs(b,{children:[e.jsx("button",{type:"button",className:"btn btn-secondary",onClick:s.remove,children:a("common:close")}),e.jsx("button",{type:"button",className:"btn btn-primary",onClick:h,children:a("common:ok")})]})]})});function M(r){return e.jsx(c,{className:"btn btn-success me-2",onClick:()=>m.show(S,{ts:Date.now(),...r}),children:e.jsx("i",{className:"fa fa-plus"})})}const T=l.lazy(()=>j(()=>import("./CodeEditor-0379f927.js"),["./CodeEditor-0379f927.js","./index-6fd02931.js","./index-654e4a69.css"],import.meta.url));class k extends l.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:a}=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(M,{updateExtensionCode:a,onCreated:s=>this.setState({currentExtension:s.name})}),e.jsx(c,{prompt:!0,disabled:!t,onClick:this.removeExtension,className:"btn btn-danger me-2",children:e.jsx("i",{className:"fa fa-trash"})}),e.jsx(c,{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,a=((s=o.find(i=>i.name===t))==null?void 0:s.code)??"";return e.jsx(T,{value:a,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 B=["extensions","theme"],q=_(B,y)(N("extensions")(k));export{q as ConnectedExtensionsEditorPage};
Binary file
@@ -0,0 +1 @@
1
+ import{u as g,l as p,j as a,r as j,L as D,g as x,d as f,c as w,a as C,w as S,R as h,i as H}from"./index-6fd02931.js";import{V as k,M as E}from"./vendor-links-5848ee9a.js";import{L,D as T,P as q}from"./index-023be162.js";import{i as F,A as M,D as N}from"./Availability-33e3e209.js";import{T as P}from"./ReactTableCom-a25763b2.js";import{D as A}from"./DeviceImage-1eac1b50.js";import{D as I}from"./DEVICES_GLOBAL_NAME-6620c611.js";import"./persist-203c6c60.js";const R={"action-column":"_action-column_1729o_1","device-pic":"_device-pic_1729o_8","device-image":"_device-image_1729o_14"};function V(l){const{data:t,lastSeenType:o,availabilityFeatureEnabled:r,homeassistantEnabled:c,setDeviceDescription:y}=l,{renameDevice:d,removeDevice:m,configureDevice:v}=l,{t:s}=g(["zigbee","common","avaliability"]),u=o!=="disable"?[{id:"last_seen",Header:s("last_seen"),accessor:({state:e})=>{var i;return(i=p(e,o))==null?void 0:i.getTime()},Cell:({row:{original:{state:e}}})=>a.jsx(L,{state:e,lastSeenType:o})}]:[],b=r?[{id:"availability",Header:s("avaliability:avaliability"),accessor:({availabilityState:e})=>F(e)?e:e.state,Cell:({row:{original:{availabilityState:e,availabilityEnabledForDevice:i,disabled:n}}})=>a.jsx(M,{disabled:n,availability:e,availabilityEnabledForDevice:i})}]:[],_=j.useMemo(()=>[{id:"pic",Header:s("pic"),Cell:({row:{original:{device:e,state:i,disabled:n}}})=>a.jsx(A,{className:R["device-image"],device:e,deviceStatus:i,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}}})=>a.jsxs(a.Fragment,{children:[a.jsx(D,{to:x(e.ieee_address),children:e.friendly_name}),a.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}}})=>a.jsxs(a.Fragment,{children:[a.jsx("div",{children:e.ieee_address}),a.jsxs("div",{children:["(",f(e.network_address,4),")"]})]})},{id:"manufacturer",Header:s("manufacturer"),accessor:({device:e})=>{var i;return[(i=e.definition)==null?void 0:i.vendor,e.manufacturer].join(" ")},Cell:({row:{original:{device:e}}})=>a.jsx(k,{device:e})},{id:"model",Header:s("model"),accessor:({device:e})=>{var i;return[(i=e.definition)==null?void 0:i.model,e.model_id].join(" ")},Cell:({row:{original:{device:e}}})=>a.jsx(E,{device:e})},{id:"lqi",Header:s("lqi"),accessor:({state:e})=>e.linkquality,Cell:({row:{original:{state:e}}})=>a.jsx(T,{value:e.linkquality,name:"linkquality"})},...u,...b,{id:"power",Header:s("power"),accessor:({state:e,device:i})=>{var n;return[e.battery,(n=i.definition)==null?void 0:n.power].join(" ")},Cell:({row:{original:{state:e,device:i}}})=>a.jsx(q,{device:i,deviceState:e})},{id:"controls",Header:"",Cell:({row:{original:{device:e,state:i}}})=>a.jsx(N,{device:e,state:i,homeassistantEnabled:c,renameDevice:d,removeDevice:m,configureDevice:v,setDeviceDescription:y}),disableSortBy:!0}],[u,b,s,c,d,m,v]);return a.jsx("div",{className:"card",children:a.jsx("div",{className:"table-responsive",children:a.jsx(P,{id:I,columns:_,data:t})})})}function B(l){const{devices:t,deviceStates:o,bridgeInfo:{config:r},availability:c}=l,{renameDevice:y,removeDevice:d,configureDevice:m,setDeviceDescription:v}=l,s=!!r.availability,u=!!(r!=null&&r.homeassistant),b=()=>Object.values(t).filter(e=>e.type!=="Coordinator").map(e=>{var n;const i=o[e.friendly_name]??{};return{id:e.friendly_name,disabled:H(e,r),device:e,state:i,availabilityState:c[e.friendly_name]??"offline",availabilityEnabledForDevice:((n=r.devices[e.ieee_address])==null?void 0:n.availability)!==!1}}),_=h.useMemo(()=>b(),[t,o]);return a.jsx(V,{data:_,lastSeenType:r.advanced.last_seen,availabilityFeatureEnabled:s,homeassistantEnabled:u,renameDevice:y,removeDevice:d,configureDevice:m,setDeviceDescription:v})}const z=["devices","deviceStates","bridgeInfo","availability"],X=w(z,C)(S(["zigbee","common"])(B));export{X as ConnectedZigbeePage};
Binary file