zigbee2mqtt-frontend 0.9.3 → 0.9.5

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 (87) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/dist/assets/{Availability-e21b5cd4.js → Availability-ae56805a.js} +1 -1
  3. package/dist/assets/Availability-ae56805a.js.br +0 -0
  4. package/dist/assets/{CodeEditor-bcea557c.js → CodeEditor-9087c631.js} +1 -1
  5. package/dist/assets/CodeEditor-9087c631.js.br +0 -0
  6. package/dist/assets/{ConnectedDevicePage-2bf88446.js → ConnectedDevicePage-d20f1560.js} +1 -1
  7. package/dist/assets/ConnectedDevicePage-d20f1560.js.br +0 -0
  8. package/dist/assets/{ConnectedMap-e5a88662.js → ConnectedMap-f57e5285.js} +1 -1
  9. package/dist/assets/ConnectedMap-f57e5285.js.br +0 -0
  10. package/dist/assets/{Dashboard-39a47135.js → Dashboard-8d81960a.js} +1 -1
  11. package/dist/assets/Dashboard-8d81960a.js.br +0 -0
  12. package/dist/assets/{DashboardDevice-53502186.js → DashboardDevice-8a3e1fbd.js} +1 -1
  13. package/dist/assets/DashboardDevice-8a3e1fbd.js.br +0 -0
  14. package/dist/assets/{DashboardFeatureWrapper-4eb44544.js → DashboardFeatureWrapper-911dd2bf.js} +1 -1
  15. package/dist/assets/DashboardFeatureWrapper-911dd2bf.js.br +0 -0
  16. package/dist/assets/{DeviceImage-7f9c1d0b.js → DeviceImage-1f4eb445.js} +1 -1
  17. package/dist/assets/DeviceImage-1f4eb445.js.br +0 -0
  18. package/dist/assets/{GroupPage-d5b1f216.js → GroupPage-84bc36a5.js} +1 -1
  19. package/dist/assets/GroupPage-84bc36a5.js.br +0 -0
  20. package/dist/assets/{ReactTableCom-94fac1ed.js → ReactTableCom-620133da.js} +1 -1
  21. package/dist/assets/ReactTableCom-620133da.js.br +0 -0
  22. package/dist/assets/{RecallRemove-eea6bd1b.js → RecallRemove-c2510492.js} +1 -1
  23. package/dist/assets/RecallRemove-c2510492.js.br +0 -0
  24. package/dist/assets/{_baseSet-71bef10a.js → _baseSet-986ce580.js} +1 -1
  25. package/dist/assets/{_getAllKeysIn-0e9e88c6.js → _getAllKeysIn-f43f2444.js} +1 -1
  26. package/dist/assets/{bootstrap-5.esm-03fbaf7a.js → bootstrap-5.esm-c0b92c02.js} +1 -1
  27. package/dist/assets/bootstrap-5.esm-c0b92c02.js.br +0 -0
  28. package/dist/assets/index-3cb164ae.js +1 -0
  29. package/dist/assets/index-3cb164ae.js.br +0 -0
  30. package/dist/assets/{index-e58a3a96.js → index-5b210506.js} +1 -1
  31. package/dist/assets/index-5b210506.js.br +0 -0
  32. package/dist/assets/{index-377f0e4f.js → index-7bf82366.js} +1 -1
  33. package/dist/assets/index-7bf82366.js.br +0 -0
  34. package/dist/assets/{index-789be13c.js → index-9f3e2a2f.js} +1 -1
  35. package/dist/assets/{index-3286b31b.js → index-a7b8cd7a.js} +1 -1
  36. package/dist/assets/index-a7b8cd7a.js.br +0 -0
  37. package/dist/assets/{index-67556f42.js → index-bb99dd37.js} +70 -55
  38. package/dist/assets/index-bb99dd37.js.br +0 -0
  39. package/dist/assets/{index-1bf471bb.js → index-d227e305.js} +3 -2
  40. package/dist/assets/index-d227e305.js.br +0 -0
  41. package/dist/assets/{index-58ee66c1.js → index-dd362945.js} +1 -1
  42. package/dist/assets/index-dd362945.js.br +0 -0
  43. package/dist/assets/{index-8cef62f7.js → index-e11ba6f2.js} +1 -1
  44. package/dist/assets/index-e11ba6f2.js.br +0 -0
  45. package/dist/assets/index-f4e850ab.js +1 -0
  46. package/dist/assets/index-f4e850ab.js.br +0 -0
  47. package/dist/assets/{intersection-7e9d5857.js → intersection-b36e1ce9.js} +1 -1
  48. package/dist/assets/intersection-b36e1ce9.js.br +0 -0
  49. package/dist/assets/{isEqual-7263d7f1.js → isEqual-5a5af836.js} +1 -1
  50. package/dist/assets/{jszip.min-4f8e7911.js → jszip.min-6c8df7db.js} +1 -1
  51. package/dist/assets/jszip.min-6c8df7db.js.br +0 -0
  52. package/dist/assets/{persist-2ee41679.js → persist-fedbbe50.js} +1 -1
  53. package/dist/assets/persist-fedbbe50.js.br +0 -0
  54. package/dist/assets/{rjsf-translation-fields-bf894a57.js → rjsf-translation-fields-a633de14.js} +1 -1
  55. package/dist/assets/{spinner-70f57ec1.js → spinner-b1baf7a5.js} +1 -1
  56. package/dist/assets/{vendor-links-d1510746.js → vendor-links-996ad5d1.js} +1 -1
  57. package/dist/assets/vendor-links-996ad5d1.js.br +0 -0
  58. package/dist/index.html +1 -1
  59. package/dist/index.html.br +0 -0
  60. package/package.json +10 -11
  61. package/dist/assets/Availability-e21b5cd4.js.br +0 -0
  62. package/dist/assets/CodeEditor-bcea557c.js.br +0 -0
  63. package/dist/assets/ConnectedDevicePage-2bf88446.js.br +0 -0
  64. package/dist/assets/ConnectedMap-e5a88662.js.br +0 -0
  65. package/dist/assets/Dashboard-39a47135.js.br +0 -0
  66. package/dist/assets/DashboardDevice-53502186.js.br +0 -0
  67. package/dist/assets/DashboardFeatureWrapper-4eb44544.js.br +0 -0
  68. package/dist/assets/DeviceImage-7f9c1d0b.js.br +0 -0
  69. package/dist/assets/GroupPage-d5b1f216.js.br +0 -0
  70. package/dist/assets/ReactTableCom-94fac1ed.js.br +0 -0
  71. package/dist/assets/RecallRemove-eea6bd1b.js.br +0 -0
  72. package/dist/assets/bootstrap-5.esm-03fbaf7a.js.br +0 -0
  73. package/dist/assets/index-1bf471bb.js.br +0 -0
  74. package/dist/assets/index-2a4cf226.js +0 -1
  75. package/dist/assets/index-2a4cf226.js.br +0 -0
  76. package/dist/assets/index-3286b31b.js.br +0 -0
  77. package/dist/assets/index-377f0e4f.js.br +0 -0
  78. package/dist/assets/index-58ee66c1.js.br +0 -0
  79. package/dist/assets/index-67556f42.js.br +0 -0
  80. package/dist/assets/index-8cef62f7.js.br +0 -0
  81. package/dist/assets/index-b656f632.js +0 -1
  82. package/dist/assets/index-b656f632.js.br +0 -0
  83. package/dist/assets/index-e58a3a96.js.br +0 -0
  84. package/dist/assets/intersection-7e9d5857.js.br +0 -0
  85. package/dist/assets/jszip.min-4f8e7911.js.br +0 -0
  86. package/dist/assets/persist-2ee41679.js.br +0 -0
  87. package/dist/assets/vendor-links-d1510746.js.br +0 -0
@@ -1 +1 @@
1
- import{R as gt,o as Ft,r as et,j as S,b as wt,B as De,w as Hn,c as Yn,a as Vn}from"./index-67556f42.js";import{D as jn}from"./DeviceImage-7f9c1d0b.js";import{i as Un}from"./isEqual-7263d7f1.js";import{_ as Gn}from"./extends-98964cd2.js";import{S as Wn}from"./spinner-70f57ec1.js";import{i as Ie}from"./intersection-7e9d5857.js";import"./index-789be13c.js";function an(t,e){if(t==null)return{};var n={},r=Object.keys(t),i,s;for(s=0;s<r.length;s++)i=r[s],!(e.indexOf(i)>=0)&&(n[i]=t[i]);return n}function he(t,e){return he=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,i){return r.__proto__=i,r},he(t,e)}function un(t,e){t.prototype=Object.create(e.prototype),t.prototype.constructor=t,he(t,e)}const ze={disabled:!1},ln=gt.createContext(null);var cn=function(e){return e.scrollTop},Mt="unmounted",pt="exited",dt="entering",yt="entered",pe="exiting",ct=function(t){un(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=pe)}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&&cn(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||ze.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||ze.disabled){this.safeSetState({status:pt},function(){i.props.onExited(a)});return}this.props.onExit(a),this.safeSetState({status:pe},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(ln.Provider,{value:null},typeof o=="function"?o(i,a):gt.cloneElement(gt.Children.only(o),a))},e}(gt.Component);ct.contextType=ln;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=pe;const Kn=ct;function Qn(t,e){return t.classList?!!e&&t.classList.contains(e):(" "+(t.className.baseVal||t.className)+" ").indexOf(" "+e+" ")!==-1}function Jn(t,e){t.classList?t.classList.add(e):Qn(t,e)||(typeof t.className=="string"?t.className=t.className+" "+e:t.setAttribute("class",(t.className&&t.className.baseVal||"")+" "+e))}function Oe(t,e){return t.replace(new RegExp("(^|\\s)"+e+"(?:\\s|$)","g"),"$1").replace(/\s+/g," ").replace(/^\s*|\s*$/g,"")}function Zn(t,e){t.classList?t.classList.remove(e):typeof t.className=="string"?t.className=Oe(t.className,e):t.setAttribute("class",Oe(t.className&&t.className.baseVal||"",e))}const tr="_container_1a2bs_1",er="_img_1a2bs_7",nr="_node_1a2bs_12",rr="_link_1a2bs_17",ir="_linkLabel_1a2bs_22",sr="_links_1a2bs_34",or="_nodes_1a2bs_38",ar="_EndDevice_1a2bs_42",ur="_Coordinator_1a2bs_49",lr="_Router_1a2bs_57",cr="_BrokenLink_1a2bs_74",fr="_Coordinator2Router_1a2bs_78",hr="_Router2Coordinator_1a2bs_79",pr="_Router2Router_1a2bs_83",dr="_Coordinator2EndDevice_1a2bs_87",gr="_EndDevice2Coordinator_1a2bs_88",vr="_Router2EndDevice_1a2bs_92",xr="_EndDevice2Router_1a2bs_93",_r="_foreignObject_1a2bs_99",mr="_offline_1a2bs_105",yr="_controls_1a2bs_110",O={container:tr,img:er,node:nr,link:rr,linkLabel:ir,links:sr,nodes:or,EndDevice:ar,Coordinator:ur,Router:lr,BrokenLink:cr,Coordinator2Router:fr,Router2Coordinator:hr,Router2Router:pr,Coordinator2EndDevice:dr,EndDevice2Coordinator:gr,Router2EndDevice:vr,EndDevice2Router:xr,foreignObject:_r,offline:mr,controls:yr};var de="http://www.w3.org/1999/xhtml";const Le={svg:"http://www.w3.org/2000/svg",xhtml:de,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 wr(t){return function(){var e=this.ownerDocument,n=this.namespaceURI;return n===de&&e.documentElement.namespaceURI===de?e.createElement(t):e.createElementNS(n,t)}}function br(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}function fn(t){var e=re(t);return(e.local?br:wr)(e)}function Nr(){}function be(t){return t==null?Nr:function(){return this.querySelector(t)}}function Er(t){typeof t!="function"&&(t=be(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 kr(t){return t==null?[]:Array.isArray(t)?t:Array.from(t)}function Cr(){return[]}function hn(t){return t==null?Cr:function(){return this.querySelectorAll(t)}}function Ar(t){return function(){return kr(t.apply(this,arguments))}}function $r(t){typeof t=="function"?t=Ar(t):t=hn(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 pn(t){return function(){return this.matches(t)}}function dn(t){return function(e){return e.matches(t)}}var Mr=Array.prototype.find;function Sr(t){return function(){return Mr.call(this.children,t)}}function Tr(){return this.firstElementChild}function Rr(t){return this.select(t==null?Tr:Sr(typeof t=="function"?t:dn(t)))}var Dr=Array.prototype.filter;function Ir(){return Array.from(this.children)}function zr(t){return function(){return Dr.call(this.children,t)}}function Or(t){return this.selectAll(t==null?Ir:zr(typeof t=="function"?t:dn(t)))}function Lr(t){typeof t!="function"&&(t=pn(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 gn(t){return new Array(t.length)}function Pr(){return new W(this._enter||this._groups.map(gn),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 Xr(t){return function(){return t}}function Fr(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 qr(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 Br(t){return t.__data__}function Hr(t,e){if(!arguments.length)return Array.from(this,Br);var n=e?qr:Fr,r=this._parents,i=this._groups;typeof t!="function"&&(t=Xr(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=Yr(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 Yr(t){return typeof t=="object"&&"length"in t?t:Array.from(t)}function Vr(){return new W(this._exit||this._groups.map(gn),this._parents)}function jr(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 Gr(){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 Wr(t){t||(t=Kr);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 Kr(t,e){return t<e?-1:t>e?1:t>=e?0:NaN}function Qr(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this}function Jr(){return Array.from(this)}function Zr(){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 ti(){let t=0;for(const e of this)++t;return t}function ei(){return!this.node()}function ni(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 ri(t){return function(){this.removeAttribute(t)}}function ii(t){return function(){this.removeAttributeNS(t.space,t.local)}}function si(t,e){return function(){this.setAttribute(t,e)}}function oi(t,e){return function(){this.setAttributeNS(t.space,t.local,e)}}function ai(t,e){return function(){var n=e.apply(this,arguments);n==null?this.removeAttribute(t):this.setAttribute(t,n)}}function ui(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 li(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?ii:ri:typeof e=="function"?n.local?ui:ai:n.local?oi:si)(n,e))}function vn(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}function ci(t){return function(){this.style.removeProperty(t)}}function fi(t,e,n){return function(){this.style.setProperty(t,e,n)}}function hi(t,e,n){return function(){var r=e.apply(this,arguments);r==null?this.style.removeProperty(t):this.style.setProperty(t,r,n)}}function pi(t,e,n){return arguments.length>1?this.each((e==null?ci:typeof e=="function"?hi:fi)(t,e,n??"")):Et(this.node(),t)}function Et(t,e){return t.style.getPropertyValue(e)||vn(t).getComputedStyle(t,null).getPropertyValue(e)}function di(t){return function(){delete this[t]}}function gi(t,e){return function(){this[t]=e}}function vi(t,e){return function(){var n=e.apply(this,arguments);n==null?delete this[t]:this[t]=n}}function xi(t,e){return arguments.length>1?this.each((e==null?di:typeof e=="function"?vi:gi)(t,e)):this.node()[t]}function xn(t){return t.trim().split(/^|\s+/)}function Ne(t){return t.classList||new _n(t)}function _n(t){this._node=t,this._names=xn(t.getAttribute("class")||"")}_n.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 mn(t,e){for(var n=Ne(t),r=-1,i=e.length;++r<i;)n.add(e[r])}function yn(t,e){for(var n=Ne(t),r=-1,i=e.length;++r<i;)n.remove(e[r])}function _i(t){return function(){mn(this,t)}}function mi(t){return function(){yn(this,t)}}function yi(t,e){return function(){(e.apply(this,arguments)?mn:yn)(this,t)}}function wi(t,e){var n=xn(t+"");if(arguments.length<2){for(var r=Ne(this.node()),i=-1,s=n.length;++i<s;)if(!r.contains(n[i]))return!1;return!0}return this.each((typeof e=="function"?yi:e?_i:mi)(n,e))}function bi(){this.textContent=""}function Ni(t){return function(){this.textContent=t}}function Ei(t){return function(){var e=t.apply(this,arguments);this.textContent=e??""}}function ki(t){return arguments.length?this.each(t==null?bi:(typeof t=="function"?Ei:Ni)(t)):this.node().textContent}function Ci(){this.innerHTML=""}function Ai(t){return function(){this.innerHTML=t}}function $i(t){return function(){var e=t.apply(this,arguments);this.innerHTML=e??""}}function Mi(t){return arguments.length?this.each(t==null?Ci:(typeof t=="function"?$i:Ai)(t)):this.node().innerHTML}function Si(){this.nextSibling&&this.parentNode.appendChild(this)}function Ti(){return this.each(Si)}function Ri(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function Di(){return this.each(Ri)}function Ii(t){var e=typeof t=="function"?t:fn(t);return this.select(function(){return this.appendChild(e.apply(this,arguments))})}function zi(){return null}function Oi(t,e){var n=typeof t=="function"?t:fn(t),r=e==null?zi:typeof e=="function"?e:be(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 Pi(){return this.each(Li)}function Xi(){var t=this.cloneNode(!1),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}function Fi(){var t=this.cloneNode(!0),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}function qi(t){return this.select(t?Fi:Xi)}function Bi(t){return arguments.length?this.property("__data__",t):this.node().__data__}function Hi(t){return function(e){t.call(this,e,this.__data__)}}function Yi(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 Vi(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 ji(t,e,n){return function(){var r=this.__on,i,s=Hi(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=Yi(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?ji:Vi,i=0;i<s;++i)this.each(a(r[i],e,n));return this}function wn(t,e,n){var r=vn(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 Gi(t,e){return function(){return wn(this,t,e)}}function Wi(t,e){return function(){return wn(this,t,e.apply(this,arguments))}}function Ki(t,e){return this.each((typeof e=="function"?Wi:Gi)(t,e))}function*Qi(){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 bn=[null];function W(t,e){this._groups=t,this._parents=e}function Lt(){return new W([[document.documentElement]],bn)}function Ji(){return this}W.prototype=Lt.prototype={constructor:W,select:Er,selectAll:$r,selectChild:Rr,selectChildren:Or,filter:Lr,data:Hr,enter:Pr,exit:Vr,join:jr,merge:Ur,selection:Ji,order:Gr,sort:Wr,call:Qr,nodes:Jr,node:Zr,size:ti,empty:ei,each:ni,attr:li,style:pi,property:xi,classed:wi,text:ki,html:Mi,raise:Ti,lower:Di,append:Ii,insert:Oi,remove:Pi,clone:qi,datum:Bi,on:Ui,dispatch:Ki,[Symbol.iterator]:Qi};function V(t){return typeof t=="string"?new W([[document.querySelector(t)]],[document.documentElement]):new W([[t]],bn)}function Zi(t){let e;for(;e=t.sourceEvent;)t=e;return t}function at(t,e){if(t=Zi(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 ts=t=>{const{link:{linkType:e},id:n,...r}=t;return S.jsx("path",{id:n,className:wt(O.link,O[e]),strokeWidth:1,fill:"transparent",...r})},es=t=>{const{link:e}=t;return S.jsx("text",{className:O.linkLabel,children:e.linkqualities.join("/")})},ns=t=>{const{links:e}=t,n=et.useRef();return et.useLayoutEffect(()=>{V(n.current).selectAll(`.${O.link}`).data(e),V(n.current).selectAll(`.${O.linkLabel}`).data(e)},[e.length]),S.jsx("g",{ref:n,className:O.links,children:e.map(r=>{const i=`${r.source.ieeeAddr}-${r.target.ieeeAddr}-${r.linkType}`;return S.jsxs(et.Fragment,{children:[S.jsx(ts,{id:`edgepath${i}`,link:r}),S.jsx(es,{xlinkHref:`#edgepath${i}`,link:r})]},`fragment${i}`)})})},rs=ns;var is={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 jt(n)}function jt(t){this._=t}function ss(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}})}jt.prototype=Pt.prototype={constructor:jt,on:function(t,e){var n=this._,r=ss(t+"",n),i,s=-1,o=r.length;if(arguments.length<2){for(;++s<o;)if((i=(t=r[s]).type)&&(i=os(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]=Pe(n[i],t.name,e);else if(e==null)for(i in n)n[i]=Pe(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 jt(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 os(t,e){for(var n=0,r=t.length,i;n<r;++n)if((i=t[n]).name===e)return i.value}function Pe(t,e,n){for(var r=0,i=t.length;r<i;++r)if(t[r].name===e){t[r]=is,t=t.slice(0,r).concat(t.slice(r+1));break}return n!=null&&t.push({name:e,value:n}),t}const as={passive:!1},Rt={capture:!0,passive:!1};function ae(t){t.stopImmediatePropagation()}function bt(t){t.preventDefault(),t.stopImmediatePropagation()}function Nn(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 En(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 ge(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}})}ge.prototype.on=function(){var t=this._.on.apply(this._,arguments);return t===this._?this:t};function us(t){return!t.ctrlKey&&!t.button}function ls(){return this.parentNode}function cs(t,e){return e??{x:t.x,y:t.y}}function fs(){return navigator.maxTouchPoints||"ontouchstart"in this}function hs(){var t=us,e=ls,n=cs,r=fs,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,as).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),Nn(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),En(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(),L=at(I||M,w),U,Y,p;if((p=n.call(d,new ge("beforestart",{sourceEvent:M,target:f,identifier:k,active:o,x:L[0],y:L[1],dx:0,dy:0,dispatch:C}),N))!=null)return U=p.x-L[0]||0,Y=p.y-L[1]||0,function A(y,$,T){var R=L,D;switch(y){case"start":i[k]=A,D=o++;break;case"end":delete i[k],--o;case"drag":L=at(T||$,w),D=o;break}C.call(y,d,new ge(y,{sourceEvent:$,subject:p,target:f,identifier:k,active:D,x:L[0]+U,y:L[1]+Y,dx:L[0]-R[0],dy:L[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 ps=function(e,n){return e&&n&&n.split(" ").forEach(function(r){return Jn(e,r)})},ue=function(e,n){return e&&n&&n.split(" ").forEach(function(r){return Zn(e,r)})},Ee=function(t){un(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&&cn(i),a&&(this.appliedClasses[s][o]=a,ps(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(Kn,Gn({},s,{onEnter:this.onEnter,onEntered:this.onEntered,onEntering:this.onEntering,onExit:this.onExit,onExiting:this.onExiting,onExited:this.onExited}))},e}(gt.Component);Ee.defaultProps={classNames:""};Ee.propTypes={};const ds=Ee,kn=(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 gs 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=Un(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(O.node,O[u],{[O.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:kn(5,5,14)})]}):S.jsxs(S.Fragment,{children:[S.jsx(ds,{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(jn,{type:"svg",width:32,disabled:!1,height:32,device:i,className:`${O.img}`})]}),S.jsx("text",{x:45,y:25,children:n.friendlyName})]})}}class vs extends et.Component{constructor(){super(...arguments),this.state={toggle:!1}}updateDrag(){const{simulation:e,root:n}=this.props,r=hs().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(`.${O.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:O.nodes,children:e.map(a=>S.jsx(gs,{onMouseOut:n,onMouseOver:r,node:a,deviceState:i[a.friendlyName],device:s[a.ieeeAddr],availability:o[a.friendlyName]},a.ieeeAddr))})}}function xs(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 _s(t){const e=+this._x.call(null,t),n=+this._y.call(null,t);return Cn(this.cover(e,n),e,n,t)}function Cn(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 ms(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)Cn(this,o[n],a[n],t[n]);return this}function ys(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 ws(){var t=[];return this.visit(function(e){if(!e.length)do t.push(e.data);while(e=e.next)}),t}function bs(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 Ns(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 Es(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 ks(t){for(var e=0,n=t.length;e<n;++e)this.remove(t[e]);return this}function Cs(){return this._root}function As(){var t=0;return this.visit(function(e){if(!e.length)do++t;while(e=e.next)}),t}function $s(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 Ms(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 Ss(t){return t[0]}function Ts(t){return arguments.length?(this._x=t,this):this._x}function Rs(t){return t[1]}function Ds(t){return arguments.length?(this._y=t,this):this._y}function An(t,e,n){var r=new ke(e??Ss,n??Rs,NaN,NaN,NaN,NaN);return t==null?r:r.addAll(t)}function ke(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 Xe(t){for(var e={data:t.data},n=e;t=t.next;)n=n.next={data:t.data};return e}var B=An.prototype=ke.prototype;B.copy=function(){var t=new ke(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=Xe(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]=Xe(r));return t};B.add=_s;B.addAll=ms;B.cover=ys;B.data=ws;B.extent=bs;B.find=Ns;B.remove=Es;B.removeAll=ks;B.root=Cs;B.size=As;B.visit=$s;B.visitAfter=Ms;B.x=Ts;B.y=Ds;function G(t){return function(){return t}}function Qt(t){return(t()-.5)*1e-6}function Is(t){return t.x+t.vx}function zs(t){return t.y+t.vy}function Os(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=An(e,Is,zs).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 L=x-k.x-k.vx,U=b-k.y-k.vy,Y=L*L+U*U;Y<C*C&&(L===0&&(L=Qt(r),Y+=L*L),U===0&&(U=Qt(r),Y+=U*U),Y=(C-(Y=Math.sqrt(Y)))/Y*i,f.vx+=(L*=Y)*(C=(I*=I)/(g+I)),f.vy+=(U*=Y)*C,k.vx-=L*(C=1-C),k.vy-=U*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 Fe(t,e){var n=t.get(e);if(!n)throw new Error("node not found: "+e);return n}function Ps(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=Fe(m,d.source)),typeof d.target!="object"&&(d.target=Fe(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,$n=1e3,Jt,Tt,Zt=0,_t=0,ie=0,Dt=typeof performance=="object"&&performance.now?performance:Date,Mn=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};function Ce(){return _t||(Mn(Xs),_t=Dt.now()+ie)}function Xs(){_t=0}function te(){this._call=this._time=this._next=null}te.prototype=Ae.prototype={constructor:te,restart:function(t,e,n){if(typeof t!="function")throw new TypeError("callback is not a function");n=(n==null?Ce():+n)+(e==null?0:+e),!this._next&&Tt!==this&&(Tt?Tt._next=this:Jt=this,Tt=this),this._call=t,this._time=n,ve()},stop:function(){this._call&&(this._call=null,this._time=1/0,ve())}};function Ae(t,e,n){var r=new te;return r.restart(t,e,n),r}function Fs(){Ce(),++kt;for(var t=Jt,e;t;)(e=_t-t._time)>=0&&t._call.call(void 0,e),t=t._next;--kt}function qe(){_t=(Zt=Dt.now())+ie,kt=St=0;try{Fs()}finally{kt=0,Bs(),_t=0}}function qs(){var t=Dt.now(),e=t-Zt;e>$n&&(ie-=e,Zt=t)}function Bs(){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,ve(r)}function ve(t){if(!kt){St&&(St=clearTimeout(St));var e=t-_t;e>24?(t<1/0&&(St=setTimeout(qe,t-Dt.now()-ie)),Ct&&(Ct=clearInterval(Ct))):(Ct||(Zt=Dt.now(),Ct=setInterval(qs,$n)),kt=1,Mn(qe))}}function Be(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 Hs=1664525,Ys=1013904223,He=4294967296;function Vs(){let t=1;return()=>(t=(Hs*t+Ys)%He)/He}var js=10,Us=Math.PI*(3-Math.sqrt(5));function Gs(t){var e,n=1,r=.001,i=1-Math.pow(r,1/300),s=0,o=.6,a=new Map,l=Ae(h),u=Pt("tick","end"),c=Vs();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=js*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 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.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 Ks(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 Ye(t){return function(){return t}}function Qs(t){var e=+this._x.call(null,t),n=+this._y.call(null,t);return Sn(this.cover(e,n),e,n,t)}function Sn(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 Js(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)Sn(this,o[n],a[n],t[n]);return this}function Zs(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 to(){var t=[];return this.visit(function(e){if(!e.length)do t.push(e.data);while(e=e.next)}),t}function eo(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 no(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 ro(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 io(t){for(var e=0,n=t.length;e<n;++e)this.remove(t[e]);return this}function so(){return this._root}function oo(){var t=0;return this.visit(function(e){if(!e.length)do++t;while(e=e.next)}),t}function ao(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 uo(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 lo(t){return t[0]}function co(t){return arguments.length?(this._x=t,this):this._x}function fo(t){return t[1]}function ho(t){return arguments.length?(this._y=t,this):this._y}function Tn(t,e,n){var r=new $e(e??lo,n??fo,NaN,NaN,NaN,NaN);return t==null?r:r.addAll(t)}function $e(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 Ve(t){for(var e={data:t.data},n=e;t=t.next;)n=n.next={data:t.data};return e}var H=Tn.prototype=$e.prototype;H.copy=function(){var t=new $e(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=Ve(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]=Ve(r));return t};H.add=Qs;H.addAll=Js;H.cover=Zs;H.data=to;H.extent=eo;H.find=no;H.remove=ro;H.removeAll=io;H.root=so;H.size=oo;H.visit=ao;H.visitAfter=uo;H.x=co;H.y=ho;function po(){var t,e,n,r=0,i,s,o,a=Ye(-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=Tn(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:Ye(+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 Me(t,e,n){t.prototype=e.prototype=n,n.constructor=t}function Rn(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*",go=/^#([0-9a-f]{3,8})$/,vo=new RegExp(`^rgb\\(${Nt},${Nt},${Nt}\\)$`),xo=new RegExp(`^rgb\\(${nt},${nt},${nt}\\)$`),_o=new RegExp(`^rgba\\(${Nt},${Nt},${Nt},${zt}\\)$`),mo=new RegExp(`^rgba\\(${nt},${nt},${nt},${zt}\\)$`),yo=new RegExp(`^hsl\\(${zt},${nt},${nt}\\)$`),wo=new RegExp(`^hsla\\(${zt},${nt},${nt},${zt}\\)$`),je={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};Me(Xt,Ot,{copy(t){return Object.assign(new this.constructor,this,t)},displayable(){return this.rgb().displayable()},hex:Ue,formatHex:Ue,formatHex8:bo,formatHsl:No,formatRgb:Ge,toString:Ge});function Ue(){return this.rgb().formatHex()}function bo(){return this.rgb().formatHex8()}function No(){return Dn(this).formatHsl()}function Ge(){return this.rgb().formatRgb()}function Ot(t){var e,n;return t=(t+"").trim().toLowerCase(),(e=go.exec(t))?(n=e[1].length,e=parseInt(e[1],16),n===6?We(e):n===3?new j(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=vo.exec(t))?new j(e[1],e[2],e[3],1):(e=xo.exec(t))?new j(e[1]*255/100,e[2]*255/100,e[3]*255/100,1):(e=_o.exec(t))?Bt(e[1],e[2],e[3],e[4]):(e=mo.exec(t))?Bt(e[1]*255/100,e[2]*255/100,e[3]*255/100,e[4]):(e=yo.exec(t))?Je(e[1],e[2]/100,e[3]/100,1):(e=wo.exec(t))?Je(e[1],e[2]/100,e[3]/100,e[4]):je.hasOwnProperty(t)?We(je[t]):t==="transparent"?new j(NaN,NaN,NaN,0):null}function We(t){return new j(t>>16&255,t>>8&255,t&255,1)}function Bt(t,e,n,r){return r<=0&&(t=e=n=NaN),new j(t,e,n,r)}function Eo(t){return t instanceof Xt||(t=Ot(t)),t?(t=t.rgb(),new j(t.r,t.g,t.b,t.opacity)):new j}function xe(t,e,n,r){return arguments.length===1?Eo(t):new j(t,e,n,r??1)}function j(t,e,n,r){this.r=+t,this.g=+e,this.b=+n,this.opacity=+r}Me(j,xe,Rn(Xt,{brighter(t){return t=t==null?ee:Math.pow(ee,t),new j(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=t==null?It:Math.pow(It,t),new j(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new j(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:Ke,formatHex:Ke,formatHex8:ko,formatRgb:Qe,toString:Qe}));function Ke(){return`#${vt(this.r)}${vt(this.g)}${vt(this.b)}`}function ko(){return`#${vt(this.r)}${vt(this.g)}${vt(this.b)}${vt((isNaN(this.opacity)?1:this.opacity)*255)}`}function Qe(){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 Je(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 Dn(t){if(t instanceof J)return new J(t.h,t.s,t.l,t.opacity);if(t instanceof Xt||(t=Ot(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 Co(t,e,n,r){return arguments.length===1?Dn(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}Me(J,Co,Rn(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 j(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(Ze(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("}${Ze(this.h)}, ${Ht(this.s)*100}%, ${Ht(this.l)*100}%${t===1?")":`, ${t})`}`}}));function Ze(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 In=t=>()=>t;function Ao(t,e){return function(n){return t+n*e}}function $o(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 Mo(t){return(t=+t)==1?zn:function(e,n){return n-e?$o(e,n,t):In(isNaN(e)?n:e)}}function zn(t,e){var n=e-t;return n?Ao(t,n):In(isNaN(t)?e:t)}const tn=function t(e){var n=Mo(e);function r(i,s){var o=n((i=xe(i)).r,(s=xe(s)).r),a=n(i.g,s.g),l=n(i.b,s.b),u=zn(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 _e=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,ce=new RegExp(_e.source,"g");function So(t){return function(){return t}}function To(t){return function(e){return t(e)+""}}function Ro(t,e){var n=_e.lastIndex=ce.lastIndex=0,r,i,s,o=-1,a=[],l=[];for(t=t+"",e=e+"";(r=_e.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]?To(l[0].x):So(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 en=180/Math.PI,me={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function On(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)*en,skewX:Math.atan(l)*en,scaleX:o,scaleY:a}}var Yt;function Do(t){const e=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(t+"");return e.isIdentity?me:On(e.a,e.b,e.c,e.d,e.e,e.f)}function Io(t){return t==null||(Yt||(Yt=document.createElementNS("http://www.w3.org/2000/svg","g")),Yt.setAttribute("transform",t),!(t=Yt.transform.baseVal.consolidate()))?me:(t=t.matrix,On(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 zo=Ln(Do,"px, ","px)","deg)"),Oo=Ln(Io,", ",")",")"),Lo=1e-12;function nn(t){return((t=Math.exp(t))+1/t)/2}function Po(t){return((t=Math.exp(t))-1/t)/2}function Xo(t){return((t=Math.exp(2*t))-1)/(t+1)}const Fo=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=nn(w),C=u/(n*E)*(I*Xo(e*k+w)-Po(w));return[a+C*x,l+C*b,u*I/nn(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 qo=Pt("start","end","cancel","interrupt"),Bo=[],Pn=0,rn=1,ye=2,Ut=3,sn=4,we=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;Ho(t,n,{name:e,index:r,group:i,on:qo,tween:Bo,time:s.time,delay:s.delay,duration:s.duration,ease:s.ease,timer:null,state:Pn})}function Se(t,e){var n=Z(t,e);if(n.state>Pn)throw new Error("too late; already scheduled");return n}function rt(t,e){var n=Z(t,e);if(n.state>Ut)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 Ho(t,e,n){var r=t.__transition,i;r[e]=n,n.timer=Ae(s,0,n.time);function s(u){n.state=rn,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!==rn)return l();for(c in r)if(x=r[c],x.name===n.name){if(x.state===Ut)return Be(o);x.state===sn?(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(Be(function(){n.state===Ut&&(n.state=sn,n.timer.restart(a,n.delay,n.time),a(u))}),n.state=ye,n.on.call("start",t,t.__data__,n.index,n.group),n.state===ye){for(n.state=Ut,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=we,1),h=-1,f=i.length;++h<f;)i[h].call(t,c);n.state===we&&(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>ye&&r.state<we,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 Yo(t){return this.each(function(){Wt(this,t)})}function Vo(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 jo(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?Vo:jo)(n,t,e))}function Te(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 Xn(t,e){var n;return(typeof e=="number"?ft:e instanceof Ot?tn:(n=Ot(e))?(e=n,tn):Ro)(t,e)}function Go(t){return function(){this.removeAttribute(t)}}function Wo(t){return function(){this.removeAttributeNS(t.space,t.local)}}function Ko(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 Qo(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 Jo(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 Zo(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 ta(t,e){var n=re(t),r=n==="transform"?Oo:Xn;return this.attrTween(t,typeof e=="function"?(n.local?Zo:Jo)(n,r,Te(this,"attr."+t,e)):e==null?(n.local?Wo:Go)(n):(n.local?Qo:Ko)(n,r,e))}function ea(t,e){return function(n){this.setAttribute(t,e.call(this,n))}}function na(t,e){return function(n){this.setAttributeNS(t.space,t.local,e.call(this,n))}}function ra(t,e){var n,r;function i(){var s=e.apply(this,arguments);return s!==r&&(n=(r=s)&&na(t,s)),n}return i._value=e,i}function ia(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 sa(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?ra:ia)(r,e))}function oa(t,e){return function(){Se(this,t).delay=+e.apply(this,arguments)}}function aa(t,e){return e=+e,function(){Se(this,t).delay=e}}function ua(t){var e=this._id;return arguments.length?this.each((typeof t=="function"?oa:aa)(e,t)):Z(this.node(),e).delay}function la(t,e){return function(){rt(this,t).duration=+e.apply(this,arguments)}}function ca(t,e){return e=+e,function(){rt(this,t).duration=e}}function fa(t){var e=this._id;return arguments.length?this.each((typeof t=="function"?la:ca)(e,t)):Z(this.node(),e).duration}function ha(t,e){if(typeof e!="function")throw new Error;return function(){rt(this,t).ease=e}}function pa(t){var e=this._id;return arguments.length?this.each(ha(e,t)):Z(this.node(),e).ease}function da(t,e){return function(){var n=e.apply(this,arguments);if(typeof n!="function")throw new Error;rt(this,t).ease=n}}function ga(t){if(typeof t!="function")throw new Error;return this.each(da(this._id,t))}function va(t){typeof t!="function"&&(t=pn(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 xa(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 _a(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 ma(t,e,n){var r,i,s=_a(e)?Se:rt;return function(){var o=s(this,t),a=o.on;a!==r&&(i=(r=a).copy()).on(e,n),o.on=i}}function ya(t,e){var n=this._id;return arguments.length<2?Z(this.node(),n).on.on(t):this.each(ma(n,t,e))}function wa(t){return function(){var e=this.parentNode;for(var n in this.__transition)if(+n!==t)return;e&&e.removeChild(this)}}function ba(){return this.on("end.remove",wa(this._id))}function Na(t){var e=this._name,n=this._id;typeof t!="function"&&(t=be(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 Ea(t){var e=this._name,n=this._id;typeof t!="function"&&(t=hn(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 ka=Lt.prototype.constructor;function Ca(){return new ka(this._groups,this._parents)}function Aa(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 Fn(t){return function(){this.style.removeProperty(t)}}function $a(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 Ma(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 Sa(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=Fn(e)):void 0;(u!==n||i!==c)&&(r=(n=u).copy()).on(o,i=c),l.on=r}}function Ta(t,e,n){var r=(t+="")=="transform"?zo:Xn;return e==null?this.styleTween(t,Aa(t,r)).on("end.style."+t,Fn(t)):typeof e=="function"?this.styleTween(t,Ma(t,r,Te(this,"style."+t,e))).each(Sa(this._id,t)):this.styleTween(t,$a(t,r,e),n).on("end.style."+t,null)}function Ra(t,e,n){return function(r){this.style.setProperty(t,e.call(this,r),n)}}function Da(t,e,n){var r,i;function s(){var o=e.apply(this,arguments);return o!==i&&(r=(i=o)&&Ra(t,o,n)),r}return s._value=e,s}function Ia(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,Da(t,e,n??""))}function za(t){return function(){this.textContent=t}}function Oa(t){return function(){var e=t(this);this.textContent=e??""}}function La(t){return this.tween("text",typeof t=="function"?Oa(Te(this,"text",t)):za(t==null?"":t+""))}function Pa(t){return function(e){this.textContent=t.call(this,e)}}function Xa(t){var e,n;function r(){var i=t.apply(this,arguments);return i!==n&&(e=(n=i)&&Pa(i)),e}return r._value=t,r}function Fa(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,Xa(t))}function qa(){for(var t=this._name,e=this._id,n=qn(),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 Ba(){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 Ha=0;function lt(t,e,n,r){this._groups=t,this._parents=e,this._name=n,this._id=r}function qn(){return++Ha}var ot=Lt.prototype;lt.prototype={constructor:lt,select:Na,selectAll:Ea,selectChild:ot.selectChild,selectChildren:ot.selectChildren,filter:va,merge:xa,selection:Ca,transition:qa,call:ot.call,nodes:ot.nodes,node:ot.node,size:ot.size,empty:ot.empty,each:ot.each,on:ya,attr:ta,attrTween:sa,style:Ta,styleTween:Ia,text:La,textTween:Fa,remove:ba,tween:Uo,delay:ua,duration:fa,ease:pa,easeVarying:ga,end:Ba,[Symbol.iterator]:ot[Symbol.iterator]};function Ya(t){return((t*=2)<=1?t*t*t:(t-=2)*t*t+2)/2}var Va={time:null,delay:0,duration:250,ease:Ya};function ja(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=qn(),(n=Va).time=Ce(),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||ja(l,e));return new lt(r,this._parents,t,e)}Lt.prototype.interrupt=Yo;Lt.prototype.transition=Ua;const Vt=t=>()=>t;function Ga(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 Re=new ut(1,0,0);ut.prototype;function fe(t){t.stopImmediatePropagation()}function At(t){t.preventDefault(),t.stopImmediatePropagation()}function Wa(t){return(!t.ctrlKey||t.type==="wheel")&&!t.button}function Ka(){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 on(){return this.__zoom||Re}function Qa(t){return-t.deltaY*(t.deltaMode===1?.05:t.deltaMode?1:.002)*(t.ctrlKey?10:1)}function Ja(){return navigator.maxTouchPoints||"ontouchstart"in this}function Za(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 tu(){var t=Wa,e=Ka,n=Za,r=Qa,i=Ja,s=[0,1/0],o=[[-1/0,-1/0],[1/0,1/0]],a=250,l=Fo,u=Pt("start","zoom","end"),c,h,f,x=500,b=150,_=0,g=10;function v(p){p.property("__zoom",on).on("wheel.zoom",k,{passive:!1}).on("mousedown.zoom",I).on("dblclick.zoom",C).filter(i).on("touchstart.zoom",L).on("touchmove.zoom",U).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",on),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(Re.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 Ga(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;Nn(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),En(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 L(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 U(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 eu=[{title:"IsParent",relationship:ht.NeigbhorIsParent},{title:"IsAChild",relationship:ht.NeigbhorIsAChild},{title:"IsASibling",relationship:ht.NeigbhorIsASibling},{title:"NoneOfTheAbove",relationship:ht.NoneOfTheAbove}],Bn=[ht.NeigbhorIsAChild,ht.NeigbhorIsParent],nu=t=>t.linkType==="Router2Router"?1:Bn.includes(t.relationship)?.5:0,ru=[...Bn,ht.NeigbhorIsASibling],$t=100,iu={BrokenLink:5*$t,Router2Router:2.5*$t,Coordinator2Router:2.5*$t,Coordinator2EndDevice:$t,EndDevice2Router:$t},su=t=>iu[t.linkType]??250,ou=(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}`},au=({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=>ou(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})`})},uu=({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 lu extends et.Component{constructor(){super(...arguments),this.ref=et.createRef(),this.svgRef=et.createRef(),this.simulation=Gs(),this.state={width:0,height:0,visibleLinks:ru,legendIsVisible:!0},this.transform=Re,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(`.${O.node}`),l=o.selectAll(`.${O.link}`),u=o.selectAll(`.${O.linkLabel}`),c=e.links.filter(b=>Ie(n,b.relationships).length);this.simulation.nodes(e.nodes.concat(c)),(x=this.simulation.force("link"))==null||x.links(c),this.simulation.on("tick",()=>au({transform:this.transform,node:a,link:l,linkLabel:u,links:c}));const h=o.selectAll(".everything");tu().extent([[0,0],[i,s]]).scaleExtent([1/10,8]).on("zoom",({transform:b})=>{h.attr("transform",b)})(o),uu({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",Ps().id(r=>r.ieeeAddr).distance(su).strength(nu)).force("charge",po().strength(-700)).force("collisionForce",Os()).force("center",xs(e/2,n/2)).force("x",Ws().strength(.1)).force("y",Ks().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=>Ie(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(rs,{links:l}),S.jsx(vs,{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.jsx("div",{className:"card",children:S.jsxs("div",{className:"card-body",children:[S.jsx("div",{className:"card-title",children:S.jsx(Wn,{})}),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:O.controls,children:[eu.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(O.node,O.Coordinator),children:[S.jsx("svg",{width:"28",height:"28",viewBox:"0 0 28 28",children:S.jsx("polygon",{points:kn(5,5,14)})})," ",e("help_is_coordinator")]}),S.jsx("div",{className:wt(O.node,O.EndDevice),children:e("help_end_device_description")}),S.jsx("div",{className:wt(O.node,O.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.jsx("div",{className:O.container,ref:this.ref,children:e.nodes.length?S.jsxs(et.Fragment,{children:[this.renderMapControls()," ",this.renderMap(),this.renderHelp()]}):this.renderMessage()})}}const xu=Hn("map")(Yn(["networkGraph","networkGraphIsLoading","deviceStates","devices","availability"],Vn)(lu));export{xu as ConnectedMap};
1
+ import{R as gt,o as Ft,r as et,j as S,b as wt,B as De,w as Hn,c as Yn,a as Vn}from"./index-bb99dd37.js";import{D as jn}from"./DeviceImage-1f4eb445.js";import{i as Un}from"./isEqual-5a5af836.js";import{_ as Gn}from"./extends-98964cd2.js";import{S as Wn}from"./spinner-b1baf7a5.js";import{i as Ie}from"./intersection-b36e1ce9.js";import"./index-9f3e2a2f.js";function an(t,e){if(t==null)return{};var n={},r=Object.keys(t),i,s;for(s=0;s<r.length;s++)i=r[s],!(e.indexOf(i)>=0)&&(n[i]=t[i]);return n}function he(t,e){return he=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,i){return r.__proto__=i,r},he(t,e)}function un(t,e){t.prototype=Object.create(e.prototype),t.prototype.constructor=t,he(t,e)}const ze={disabled:!1},ln=gt.createContext(null);var cn=function(e){return e.scrollTop},Mt="unmounted",pt="exited",dt="entering",yt="entered",pe="exiting",ct=function(t){un(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=pe)}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&&cn(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||ze.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||ze.disabled){this.safeSetState({status:pt},function(){i.props.onExited(a)});return}this.props.onExit(a),this.safeSetState({status:pe},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(ln.Provider,{value:null},typeof o=="function"?o(i,a):gt.cloneElement(gt.Children.only(o),a))},e}(gt.Component);ct.contextType=ln;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=pe;const Kn=ct;function Qn(t,e){return t.classList?!!e&&t.classList.contains(e):(" "+(t.className.baseVal||t.className)+" ").indexOf(" "+e+" ")!==-1}function Jn(t,e){t.classList?t.classList.add(e):Qn(t,e)||(typeof t.className=="string"?t.className=t.className+" "+e:t.setAttribute("class",(t.className&&t.className.baseVal||"")+" "+e))}function Oe(t,e){return t.replace(new RegExp("(^|\\s)"+e+"(?:\\s|$)","g"),"$1").replace(/\s+/g," ").replace(/^\s*|\s*$/g,"")}function Zn(t,e){t.classList?t.classList.remove(e):typeof t.className=="string"?t.className=Oe(t.className,e):t.setAttribute("class",Oe(t.className&&t.className.baseVal||"",e))}const tr="_container_1a2bs_1",er="_img_1a2bs_7",nr="_node_1a2bs_12",rr="_link_1a2bs_17",ir="_linkLabel_1a2bs_22",sr="_links_1a2bs_34",or="_nodes_1a2bs_38",ar="_EndDevice_1a2bs_42",ur="_Coordinator_1a2bs_49",lr="_Router_1a2bs_57",cr="_BrokenLink_1a2bs_74",fr="_Coordinator2Router_1a2bs_78",hr="_Router2Coordinator_1a2bs_79",pr="_Router2Router_1a2bs_83",dr="_Coordinator2EndDevice_1a2bs_87",gr="_EndDevice2Coordinator_1a2bs_88",vr="_Router2EndDevice_1a2bs_92",xr="_EndDevice2Router_1a2bs_93",_r="_foreignObject_1a2bs_99",mr="_offline_1a2bs_105",yr="_controls_1a2bs_110",O={container:tr,img:er,node:nr,link:rr,linkLabel:ir,links:sr,nodes:or,EndDevice:ar,Coordinator:ur,Router:lr,BrokenLink:cr,Coordinator2Router:fr,Router2Coordinator:hr,Router2Router:pr,Coordinator2EndDevice:dr,EndDevice2Coordinator:gr,Router2EndDevice:vr,EndDevice2Router:xr,foreignObject:_r,offline:mr,controls:yr};var de="http://www.w3.org/1999/xhtml";const Le={svg:"http://www.w3.org/2000/svg",xhtml:de,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 wr(t){return function(){var e=this.ownerDocument,n=this.namespaceURI;return n===de&&e.documentElement.namespaceURI===de?e.createElement(t):e.createElementNS(n,t)}}function br(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}function fn(t){var e=re(t);return(e.local?br:wr)(e)}function Nr(){}function be(t){return t==null?Nr:function(){return this.querySelector(t)}}function Er(t){typeof t!="function"&&(t=be(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 kr(t){return t==null?[]:Array.isArray(t)?t:Array.from(t)}function Cr(){return[]}function hn(t){return t==null?Cr:function(){return this.querySelectorAll(t)}}function Ar(t){return function(){return kr(t.apply(this,arguments))}}function $r(t){typeof t=="function"?t=Ar(t):t=hn(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 pn(t){return function(){return this.matches(t)}}function dn(t){return function(e){return e.matches(t)}}var Mr=Array.prototype.find;function Sr(t){return function(){return Mr.call(this.children,t)}}function Tr(){return this.firstElementChild}function Rr(t){return this.select(t==null?Tr:Sr(typeof t=="function"?t:dn(t)))}var Dr=Array.prototype.filter;function Ir(){return Array.from(this.children)}function zr(t){return function(){return Dr.call(this.children,t)}}function Or(t){return this.selectAll(t==null?Ir:zr(typeof t=="function"?t:dn(t)))}function Lr(t){typeof t!="function"&&(t=pn(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 gn(t){return new Array(t.length)}function Pr(){return new W(this._enter||this._groups.map(gn),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 Xr(t){return function(){return t}}function Fr(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 qr(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 Br(t){return t.__data__}function Hr(t,e){if(!arguments.length)return Array.from(this,Br);var n=e?qr:Fr,r=this._parents,i=this._groups;typeof t!="function"&&(t=Xr(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=Yr(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 Yr(t){return typeof t=="object"&&"length"in t?t:Array.from(t)}function Vr(){return new W(this._exit||this._groups.map(gn),this._parents)}function jr(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 Gr(){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 Wr(t){t||(t=Kr);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 Kr(t,e){return t<e?-1:t>e?1:t>=e?0:NaN}function Qr(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this}function Jr(){return Array.from(this)}function Zr(){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 ti(){let t=0;for(const e of this)++t;return t}function ei(){return!this.node()}function ni(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 ri(t){return function(){this.removeAttribute(t)}}function ii(t){return function(){this.removeAttributeNS(t.space,t.local)}}function si(t,e){return function(){this.setAttribute(t,e)}}function oi(t,e){return function(){this.setAttributeNS(t.space,t.local,e)}}function ai(t,e){return function(){var n=e.apply(this,arguments);n==null?this.removeAttribute(t):this.setAttribute(t,n)}}function ui(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 li(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?ii:ri:typeof e=="function"?n.local?ui:ai:n.local?oi:si)(n,e))}function vn(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}function ci(t){return function(){this.style.removeProperty(t)}}function fi(t,e,n){return function(){this.style.setProperty(t,e,n)}}function hi(t,e,n){return function(){var r=e.apply(this,arguments);r==null?this.style.removeProperty(t):this.style.setProperty(t,r,n)}}function pi(t,e,n){return arguments.length>1?this.each((e==null?ci:typeof e=="function"?hi:fi)(t,e,n??"")):Et(this.node(),t)}function Et(t,e){return t.style.getPropertyValue(e)||vn(t).getComputedStyle(t,null).getPropertyValue(e)}function di(t){return function(){delete this[t]}}function gi(t,e){return function(){this[t]=e}}function vi(t,e){return function(){var n=e.apply(this,arguments);n==null?delete this[t]:this[t]=n}}function xi(t,e){return arguments.length>1?this.each((e==null?di:typeof e=="function"?vi:gi)(t,e)):this.node()[t]}function xn(t){return t.trim().split(/^|\s+/)}function Ne(t){return t.classList||new _n(t)}function _n(t){this._node=t,this._names=xn(t.getAttribute("class")||"")}_n.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 mn(t,e){for(var n=Ne(t),r=-1,i=e.length;++r<i;)n.add(e[r])}function yn(t,e){for(var n=Ne(t),r=-1,i=e.length;++r<i;)n.remove(e[r])}function _i(t){return function(){mn(this,t)}}function mi(t){return function(){yn(this,t)}}function yi(t,e){return function(){(e.apply(this,arguments)?mn:yn)(this,t)}}function wi(t,e){var n=xn(t+"");if(arguments.length<2){for(var r=Ne(this.node()),i=-1,s=n.length;++i<s;)if(!r.contains(n[i]))return!1;return!0}return this.each((typeof e=="function"?yi:e?_i:mi)(n,e))}function bi(){this.textContent=""}function Ni(t){return function(){this.textContent=t}}function Ei(t){return function(){var e=t.apply(this,arguments);this.textContent=e??""}}function ki(t){return arguments.length?this.each(t==null?bi:(typeof t=="function"?Ei:Ni)(t)):this.node().textContent}function Ci(){this.innerHTML=""}function Ai(t){return function(){this.innerHTML=t}}function $i(t){return function(){var e=t.apply(this,arguments);this.innerHTML=e??""}}function Mi(t){return arguments.length?this.each(t==null?Ci:(typeof t=="function"?$i:Ai)(t)):this.node().innerHTML}function Si(){this.nextSibling&&this.parentNode.appendChild(this)}function Ti(){return this.each(Si)}function Ri(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function Di(){return this.each(Ri)}function Ii(t){var e=typeof t=="function"?t:fn(t);return this.select(function(){return this.appendChild(e.apply(this,arguments))})}function zi(){return null}function Oi(t,e){var n=typeof t=="function"?t:fn(t),r=e==null?zi:typeof e=="function"?e:be(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 Pi(){return this.each(Li)}function Xi(){var t=this.cloneNode(!1),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}function Fi(){var t=this.cloneNode(!0),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}function qi(t){return this.select(t?Fi:Xi)}function Bi(t){return arguments.length?this.property("__data__",t):this.node().__data__}function Hi(t){return function(e){t.call(this,e,this.__data__)}}function Yi(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 Vi(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 ji(t,e,n){return function(){var r=this.__on,i,s=Hi(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=Yi(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?ji:Vi,i=0;i<s;++i)this.each(a(r[i],e,n));return this}function wn(t,e,n){var r=vn(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 Gi(t,e){return function(){return wn(this,t,e)}}function Wi(t,e){return function(){return wn(this,t,e.apply(this,arguments))}}function Ki(t,e){return this.each((typeof e=="function"?Wi:Gi)(t,e))}function*Qi(){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 bn=[null];function W(t,e){this._groups=t,this._parents=e}function Lt(){return new W([[document.documentElement]],bn)}function Ji(){return this}W.prototype=Lt.prototype={constructor:W,select:Er,selectAll:$r,selectChild:Rr,selectChildren:Or,filter:Lr,data:Hr,enter:Pr,exit:Vr,join:jr,merge:Ur,selection:Ji,order:Gr,sort:Wr,call:Qr,nodes:Jr,node:Zr,size:ti,empty:ei,each:ni,attr:li,style:pi,property:xi,classed:wi,text:ki,html:Mi,raise:Ti,lower:Di,append:Ii,insert:Oi,remove:Pi,clone:qi,datum:Bi,on:Ui,dispatch:Ki,[Symbol.iterator]:Qi};function V(t){return typeof t=="string"?new W([[document.querySelector(t)]],[document.documentElement]):new W([[t]],bn)}function Zi(t){let e;for(;e=t.sourceEvent;)t=e;return t}function at(t,e){if(t=Zi(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 ts=t=>{const{link:{linkType:e},id:n,...r}=t;return S.jsx("path",{id:n,className:wt(O.link,O[e]),strokeWidth:1,fill:"transparent",...r})},es=t=>{const{link:e}=t;return S.jsx("text",{className:O.linkLabel,children:e.linkqualities.join("/")})},ns=t=>{const{links:e}=t,n=et.useRef();return et.useLayoutEffect(()=>{V(n.current).selectAll(`.${O.link}`).data(e),V(n.current).selectAll(`.${O.linkLabel}`).data(e)},[e.length]),S.jsx("g",{ref:n,className:O.links,children:e.map(r=>{const i=`${r.source.ieeeAddr}-${r.target.ieeeAddr}-${r.linkType}`;return S.jsxs(et.Fragment,{children:[S.jsx(ts,{id:`edgepath${i}`,link:r}),S.jsx(es,{xlinkHref:`#edgepath${i}`,link:r})]},`fragment${i}`)})})},rs=ns;var is={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 jt(n)}function jt(t){this._=t}function ss(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}})}jt.prototype=Pt.prototype={constructor:jt,on:function(t,e){var n=this._,r=ss(t+"",n),i,s=-1,o=r.length;if(arguments.length<2){for(;++s<o;)if((i=(t=r[s]).type)&&(i=os(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]=Pe(n[i],t.name,e);else if(e==null)for(i in n)n[i]=Pe(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 jt(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 os(t,e){for(var n=0,r=t.length,i;n<r;++n)if((i=t[n]).name===e)return i.value}function Pe(t,e,n){for(var r=0,i=t.length;r<i;++r)if(t[r].name===e){t[r]=is,t=t.slice(0,r).concat(t.slice(r+1));break}return n!=null&&t.push({name:e,value:n}),t}const as={passive:!1},Rt={capture:!0,passive:!1};function ae(t){t.stopImmediatePropagation()}function bt(t){t.preventDefault(),t.stopImmediatePropagation()}function Nn(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 En(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 ge(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}})}ge.prototype.on=function(){var t=this._.on.apply(this._,arguments);return t===this._?this:t};function us(t){return!t.ctrlKey&&!t.button}function ls(){return this.parentNode}function cs(t,e){return e??{x:t.x,y:t.y}}function fs(){return navigator.maxTouchPoints||"ontouchstart"in this}function hs(){var t=us,e=ls,n=cs,r=fs,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,as).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),Nn(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),En(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(),L=at(I||M,w),U,Y,p;if((p=n.call(d,new ge("beforestart",{sourceEvent:M,target:f,identifier:k,active:o,x:L[0],y:L[1],dx:0,dy:0,dispatch:C}),N))!=null)return U=p.x-L[0]||0,Y=p.y-L[1]||0,function A(y,$,T){var R=L,D;switch(y){case"start":i[k]=A,D=o++;break;case"end":delete i[k],--o;case"drag":L=at(T||$,w),D=o;break}C.call(y,d,new ge(y,{sourceEvent:$,subject:p,target:f,identifier:k,active:D,x:L[0]+U,y:L[1]+Y,dx:L[0]-R[0],dy:L[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 ps=function(e,n){return e&&n&&n.split(" ").forEach(function(r){return Jn(e,r)})},ue=function(e,n){return e&&n&&n.split(" ").forEach(function(r){return Zn(e,r)})},Ee=function(t){un(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&&cn(i),a&&(this.appliedClasses[s][o]=a,ps(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(Kn,Gn({},s,{onEnter:this.onEnter,onEntered:this.onEntered,onEntering:this.onEntering,onExit:this.onExit,onExiting:this.onExiting,onExited:this.onExited}))},e}(gt.Component);Ee.defaultProps={classNames:""};Ee.propTypes={};const ds=Ee,kn=(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 gs 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=Un(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(O.node,O[u],{[O.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:kn(5,5,14)})]}):S.jsxs(S.Fragment,{children:[S.jsx(ds,{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(jn,{type:"svg",width:32,disabled:!1,height:32,device:i,className:`${O.img}`})]}),S.jsx("text",{x:45,y:25,children:n.friendlyName})]})}}class vs extends et.Component{constructor(){super(...arguments),this.state={toggle:!1}}updateDrag(){const{simulation:e,root:n}=this.props,r=hs().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(`.${O.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:O.nodes,children:e.map(a=>S.jsx(gs,{onMouseOut:n,onMouseOver:r,node:a,deviceState:i[a.friendlyName],device:s[a.ieeeAddr],availability:o[a.friendlyName]},a.ieeeAddr))})}}function xs(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 _s(t){const e=+this._x.call(null,t),n=+this._y.call(null,t);return Cn(this.cover(e,n),e,n,t)}function Cn(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 ms(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)Cn(this,o[n],a[n],t[n]);return this}function ys(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 ws(){var t=[];return this.visit(function(e){if(!e.length)do t.push(e.data);while(e=e.next)}),t}function bs(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 Ns(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 Es(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 ks(t){for(var e=0,n=t.length;e<n;++e)this.remove(t[e]);return this}function Cs(){return this._root}function As(){var t=0;return this.visit(function(e){if(!e.length)do++t;while(e=e.next)}),t}function $s(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 Ms(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 Ss(t){return t[0]}function Ts(t){return arguments.length?(this._x=t,this):this._x}function Rs(t){return t[1]}function Ds(t){return arguments.length?(this._y=t,this):this._y}function An(t,e,n){var r=new ke(e??Ss,n??Rs,NaN,NaN,NaN,NaN);return t==null?r:r.addAll(t)}function ke(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 Xe(t){for(var e={data:t.data},n=e;t=t.next;)n=n.next={data:t.data};return e}var B=An.prototype=ke.prototype;B.copy=function(){var t=new ke(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=Xe(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]=Xe(r));return t};B.add=_s;B.addAll=ms;B.cover=ys;B.data=ws;B.extent=bs;B.find=Ns;B.remove=Es;B.removeAll=ks;B.root=Cs;B.size=As;B.visit=$s;B.visitAfter=Ms;B.x=Ts;B.y=Ds;function G(t){return function(){return t}}function Qt(t){return(t()-.5)*1e-6}function Is(t){return t.x+t.vx}function zs(t){return t.y+t.vy}function Os(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=An(e,Is,zs).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 L=x-k.x-k.vx,U=b-k.y-k.vy,Y=L*L+U*U;Y<C*C&&(L===0&&(L=Qt(r),Y+=L*L),U===0&&(U=Qt(r),Y+=U*U),Y=(C-(Y=Math.sqrt(Y)))/Y*i,f.vx+=(L*=Y)*(C=(I*=I)/(g+I)),f.vy+=(U*=Y)*C,k.vx-=L*(C=1-C),k.vy-=U*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 Fe(t,e){var n=t.get(e);if(!n)throw new Error("node not found: "+e);return n}function Ps(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=Fe(m,d.source)),typeof d.target!="object"&&(d.target=Fe(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,$n=1e3,Jt,Tt,Zt=0,_t=0,ie=0,Dt=typeof performance=="object"&&performance.now?performance:Date,Mn=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};function Ce(){return _t||(Mn(Xs),_t=Dt.now()+ie)}function Xs(){_t=0}function te(){this._call=this._time=this._next=null}te.prototype=Ae.prototype={constructor:te,restart:function(t,e,n){if(typeof t!="function")throw new TypeError("callback is not a function");n=(n==null?Ce():+n)+(e==null?0:+e),!this._next&&Tt!==this&&(Tt?Tt._next=this:Jt=this,Tt=this),this._call=t,this._time=n,ve()},stop:function(){this._call&&(this._call=null,this._time=1/0,ve())}};function Ae(t,e,n){var r=new te;return r.restart(t,e,n),r}function Fs(){Ce(),++kt;for(var t=Jt,e;t;)(e=_t-t._time)>=0&&t._call.call(void 0,e),t=t._next;--kt}function qe(){_t=(Zt=Dt.now())+ie,kt=St=0;try{Fs()}finally{kt=0,Bs(),_t=0}}function qs(){var t=Dt.now(),e=t-Zt;e>$n&&(ie-=e,Zt=t)}function Bs(){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,ve(r)}function ve(t){if(!kt){St&&(St=clearTimeout(St));var e=t-_t;e>24?(t<1/0&&(St=setTimeout(qe,t-Dt.now()-ie)),Ct&&(Ct=clearInterval(Ct))):(Ct||(Zt=Dt.now(),Ct=setInterval(qs,$n)),kt=1,Mn(qe))}}function Be(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 Hs=1664525,Ys=1013904223,He=4294967296;function Vs(){let t=1;return()=>(t=(Hs*t+Ys)%He)/He}var js=10,Us=Math.PI*(3-Math.sqrt(5));function Gs(t){var e,n=1,r=.001,i=1-Math.pow(r,1/300),s=0,o=.6,a=new Map,l=Ae(h),u=Pt("tick","end"),c=Vs();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=js*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 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.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 Ks(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 Ye(t){return function(){return t}}function Qs(t){var e=+this._x.call(null,t),n=+this._y.call(null,t);return Sn(this.cover(e,n),e,n,t)}function Sn(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 Js(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)Sn(this,o[n],a[n],t[n]);return this}function Zs(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 to(){var t=[];return this.visit(function(e){if(!e.length)do t.push(e.data);while(e=e.next)}),t}function eo(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 no(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 ro(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 io(t){for(var e=0,n=t.length;e<n;++e)this.remove(t[e]);return this}function so(){return this._root}function oo(){var t=0;return this.visit(function(e){if(!e.length)do++t;while(e=e.next)}),t}function ao(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 uo(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 lo(t){return t[0]}function co(t){return arguments.length?(this._x=t,this):this._x}function fo(t){return t[1]}function ho(t){return arguments.length?(this._y=t,this):this._y}function Tn(t,e,n){var r=new $e(e??lo,n??fo,NaN,NaN,NaN,NaN);return t==null?r:r.addAll(t)}function $e(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 Ve(t){for(var e={data:t.data},n=e;t=t.next;)n=n.next={data:t.data};return e}var H=Tn.prototype=$e.prototype;H.copy=function(){var t=new $e(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=Ve(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]=Ve(r));return t};H.add=Qs;H.addAll=Js;H.cover=Zs;H.data=to;H.extent=eo;H.find=no;H.remove=ro;H.removeAll=io;H.root=so;H.size=oo;H.visit=ao;H.visitAfter=uo;H.x=co;H.y=ho;function po(){var t,e,n,r=0,i,s,o,a=Ye(-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=Tn(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:Ye(+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 Me(t,e,n){t.prototype=e.prototype=n,n.constructor=t}function Rn(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*",go=/^#([0-9a-f]{3,8})$/,vo=new RegExp(`^rgb\\(${Nt},${Nt},${Nt}\\)$`),xo=new RegExp(`^rgb\\(${nt},${nt},${nt}\\)$`),_o=new RegExp(`^rgba\\(${Nt},${Nt},${Nt},${zt}\\)$`),mo=new RegExp(`^rgba\\(${nt},${nt},${nt},${zt}\\)$`),yo=new RegExp(`^hsl\\(${zt},${nt},${nt}\\)$`),wo=new RegExp(`^hsla\\(${zt},${nt},${nt},${zt}\\)$`),je={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};Me(Xt,Ot,{copy(t){return Object.assign(new this.constructor,this,t)},displayable(){return this.rgb().displayable()},hex:Ue,formatHex:Ue,formatHex8:bo,formatHsl:No,formatRgb:Ge,toString:Ge});function Ue(){return this.rgb().formatHex()}function bo(){return this.rgb().formatHex8()}function No(){return Dn(this).formatHsl()}function Ge(){return this.rgb().formatRgb()}function Ot(t){var e,n;return t=(t+"").trim().toLowerCase(),(e=go.exec(t))?(n=e[1].length,e=parseInt(e[1],16),n===6?We(e):n===3?new j(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=vo.exec(t))?new j(e[1],e[2],e[3],1):(e=xo.exec(t))?new j(e[1]*255/100,e[2]*255/100,e[3]*255/100,1):(e=_o.exec(t))?Bt(e[1],e[2],e[3],e[4]):(e=mo.exec(t))?Bt(e[1]*255/100,e[2]*255/100,e[3]*255/100,e[4]):(e=yo.exec(t))?Je(e[1],e[2]/100,e[3]/100,1):(e=wo.exec(t))?Je(e[1],e[2]/100,e[3]/100,e[4]):je.hasOwnProperty(t)?We(je[t]):t==="transparent"?new j(NaN,NaN,NaN,0):null}function We(t){return new j(t>>16&255,t>>8&255,t&255,1)}function Bt(t,e,n,r){return r<=0&&(t=e=n=NaN),new j(t,e,n,r)}function Eo(t){return t instanceof Xt||(t=Ot(t)),t?(t=t.rgb(),new j(t.r,t.g,t.b,t.opacity)):new j}function xe(t,e,n,r){return arguments.length===1?Eo(t):new j(t,e,n,r??1)}function j(t,e,n,r){this.r=+t,this.g=+e,this.b=+n,this.opacity=+r}Me(j,xe,Rn(Xt,{brighter(t){return t=t==null?ee:Math.pow(ee,t),new j(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=t==null?It:Math.pow(It,t),new j(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new j(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:Ke,formatHex:Ke,formatHex8:ko,formatRgb:Qe,toString:Qe}));function Ke(){return`#${vt(this.r)}${vt(this.g)}${vt(this.b)}`}function ko(){return`#${vt(this.r)}${vt(this.g)}${vt(this.b)}${vt((isNaN(this.opacity)?1:this.opacity)*255)}`}function Qe(){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 Je(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 Dn(t){if(t instanceof J)return new J(t.h,t.s,t.l,t.opacity);if(t instanceof Xt||(t=Ot(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 Co(t,e,n,r){return arguments.length===1?Dn(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}Me(J,Co,Rn(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 j(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(Ze(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("}${Ze(this.h)}, ${Ht(this.s)*100}%, ${Ht(this.l)*100}%${t===1?")":`, ${t})`}`}}));function Ze(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 In=t=>()=>t;function Ao(t,e){return function(n){return t+n*e}}function $o(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 Mo(t){return(t=+t)==1?zn:function(e,n){return n-e?$o(e,n,t):In(isNaN(e)?n:e)}}function zn(t,e){var n=e-t;return n?Ao(t,n):In(isNaN(t)?e:t)}const tn=function t(e){var n=Mo(e);function r(i,s){var o=n((i=xe(i)).r,(s=xe(s)).r),a=n(i.g,s.g),l=n(i.b,s.b),u=zn(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 _e=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,ce=new RegExp(_e.source,"g");function So(t){return function(){return t}}function To(t){return function(e){return t(e)+""}}function Ro(t,e){var n=_e.lastIndex=ce.lastIndex=0,r,i,s,o=-1,a=[],l=[];for(t=t+"",e=e+"";(r=_e.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]?To(l[0].x):So(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 en=180/Math.PI,me={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function On(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)*en,skewX:Math.atan(l)*en,scaleX:o,scaleY:a}}var Yt;function Do(t){const e=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(t+"");return e.isIdentity?me:On(e.a,e.b,e.c,e.d,e.e,e.f)}function Io(t){return t==null||(Yt||(Yt=document.createElementNS("http://www.w3.org/2000/svg","g")),Yt.setAttribute("transform",t),!(t=Yt.transform.baseVal.consolidate()))?me:(t=t.matrix,On(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 zo=Ln(Do,"px, ","px)","deg)"),Oo=Ln(Io,", ",")",")"),Lo=1e-12;function nn(t){return((t=Math.exp(t))+1/t)/2}function Po(t){return((t=Math.exp(t))-1/t)/2}function Xo(t){return((t=Math.exp(2*t))-1)/(t+1)}const Fo=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=nn(w),C=u/(n*E)*(I*Xo(e*k+w)-Po(w));return[a+C*x,l+C*b,u*I/nn(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 qo=Pt("start","end","cancel","interrupt"),Bo=[],Pn=0,rn=1,ye=2,Ut=3,sn=4,we=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;Ho(t,n,{name:e,index:r,group:i,on:qo,tween:Bo,time:s.time,delay:s.delay,duration:s.duration,ease:s.ease,timer:null,state:Pn})}function Se(t,e){var n=Z(t,e);if(n.state>Pn)throw new Error("too late; already scheduled");return n}function rt(t,e){var n=Z(t,e);if(n.state>Ut)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 Ho(t,e,n){var r=t.__transition,i;r[e]=n,n.timer=Ae(s,0,n.time);function s(u){n.state=rn,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!==rn)return l();for(c in r)if(x=r[c],x.name===n.name){if(x.state===Ut)return Be(o);x.state===sn?(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(Be(function(){n.state===Ut&&(n.state=sn,n.timer.restart(a,n.delay,n.time),a(u))}),n.state=ye,n.on.call("start",t,t.__data__,n.index,n.group),n.state===ye){for(n.state=Ut,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=we,1),h=-1,f=i.length;++h<f;)i[h].call(t,c);n.state===we&&(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>ye&&r.state<we,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 Yo(t){return this.each(function(){Wt(this,t)})}function Vo(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 jo(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?Vo:jo)(n,t,e))}function Te(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 Xn(t,e){var n;return(typeof e=="number"?ft:e instanceof Ot?tn:(n=Ot(e))?(e=n,tn):Ro)(t,e)}function Go(t){return function(){this.removeAttribute(t)}}function Wo(t){return function(){this.removeAttributeNS(t.space,t.local)}}function Ko(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 Qo(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 Jo(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 Zo(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 ta(t,e){var n=re(t),r=n==="transform"?Oo:Xn;return this.attrTween(t,typeof e=="function"?(n.local?Zo:Jo)(n,r,Te(this,"attr."+t,e)):e==null?(n.local?Wo:Go)(n):(n.local?Qo:Ko)(n,r,e))}function ea(t,e){return function(n){this.setAttribute(t,e.call(this,n))}}function na(t,e){return function(n){this.setAttributeNS(t.space,t.local,e.call(this,n))}}function ra(t,e){var n,r;function i(){var s=e.apply(this,arguments);return s!==r&&(n=(r=s)&&na(t,s)),n}return i._value=e,i}function ia(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 sa(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?ra:ia)(r,e))}function oa(t,e){return function(){Se(this,t).delay=+e.apply(this,arguments)}}function aa(t,e){return e=+e,function(){Se(this,t).delay=e}}function ua(t){var e=this._id;return arguments.length?this.each((typeof t=="function"?oa:aa)(e,t)):Z(this.node(),e).delay}function la(t,e){return function(){rt(this,t).duration=+e.apply(this,arguments)}}function ca(t,e){return e=+e,function(){rt(this,t).duration=e}}function fa(t){var e=this._id;return arguments.length?this.each((typeof t=="function"?la:ca)(e,t)):Z(this.node(),e).duration}function ha(t,e){if(typeof e!="function")throw new Error;return function(){rt(this,t).ease=e}}function pa(t){var e=this._id;return arguments.length?this.each(ha(e,t)):Z(this.node(),e).ease}function da(t,e){return function(){var n=e.apply(this,arguments);if(typeof n!="function")throw new Error;rt(this,t).ease=n}}function ga(t){if(typeof t!="function")throw new Error;return this.each(da(this._id,t))}function va(t){typeof t!="function"&&(t=pn(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 xa(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 _a(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 ma(t,e,n){var r,i,s=_a(e)?Se:rt;return function(){var o=s(this,t),a=o.on;a!==r&&(i=(r=a).copy()).on(e,n),o.on=i}}function ya(t,e){var n=this._id;return arguments.length<2?Z(this.node(),n).on.on(t):this.each(ma(n,t,e))}function wa(t){return function(){var e=this.parentNode;for(var n in this.__transition)if(+n!==t)return;e&&e.removeChild(this)}}function ba(){return this.on("end.remove",wa(this._id))}function Na(t){var e=this._name,n=this._id;typeof t!="function"&&(t=be(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 Ea(t){var e=this._name,n=this._id;typeof t!="function"&&(t=hn(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 ka=Lt.prototype.constructor;function Ca(){return new ka(this._groups,this._parents)}function Aa(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 Fn(t){return function(){this.style.removeProperty(t)}}function $a(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 Ma(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 Sa(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=Fn(e)):void 0;(u!==n||i!==c)&&(r=(n=u).copy()).on(o,i=c),l.on=r}}function Ta(t,e,n){var r=(t+="")=="transform"?zo:Xn;return e==null?this.styleTween(t,Aa(t,r)).on("end.style."+t,Fn(t)):typeof e=="function"?this.styleTween(t,Ma(t,r,Te(this,"style."+t,e))).each(Sa(this._id,t)):this.styleTween(t,$a(t,r,e),n).on("end.style."+t,null)}function Ra(t,e,n){return function(r){this.style.setProperty(t,e.call(this,r),n)}}function Da(t,e,n){var r,i;function s(){var o=e.apply(this,arguments);return o!==i&&(r=(i=o)&&Ra(t,o,n)),r}return s._value=e,s}function Ia(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,Da(t,e,n??""))}function za(t){return function(){this.textContent=t}}function Oa(t){return function(){var e=t(this);this.textContent=e??""}}function La(t){return this.tween("text",typeof t=="function"?Oa(Te(this,"text",t)):za(t==null?"":t+""))}function Pa(t){return function(e){this.textContent=t.call(this,e)}}function Xa(t){var e,n;function r(){var i=t.apply(this,arguments);return i!==n&&(e=(n=i)&&Pa(i)),e}return r._value=t,r}function Fa(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,Xa(t))}function qa(){for(var t=this._name,e=this._id,n=qn(),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 Ba(){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 Ha=0;function lt(t,e,n,r){this._groups=t,this._parents=e,this._name=n,this._id=r}function qn(){return++Ha}var ot=Lt.prototype;lt.prototype={constructor:lt,select:Na,selectAll:Ea,selectChild:ot.selectChild,selectChildren:ot.selectChildren,filter:va,merge:xa,selection:Ca,transition:qa,call:ot.call,nodes:ot.nodes,node:ot.node,size:ot.size,empty:ot.empty,each:ot.each,on:ya,attr:ta,attrTween:sa,style:Ta,styleTween:Ia,text:La,textTween:Fa,remove:ba,tween:Uo,delay:ua,duration:fa,ease:pa,easeVarying:ga,end:Ba,[Symbol.iterator]:ot[Symbol.iterator]};function Ya(t){return((t*=2)<=1?t*t*t:(t-=2)*t*t+2)/2}var Va={time:null,delay:0,duration:250,ease:Ya};function ja(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=qn(),(n=Va).time=Ce(),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||ja(l,e));return new lt(r,this._parents,t,e)}Lt.prototype.interrupt=Yo;Lt.prototype.transition=Ua;const Vt=t=>()=>t;function Ga(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 Re=new ut(1,0,0);ut.prototype;function fe(t){t.stopImmediatePropagation()}function At(t){t.preventDefault(),t.stopImmediatePropagation()}function Wa(t){return(!t.ctrlKey||t.type==="wheel")&&!t.button}function Ka(){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 on(){return this.__zoom||Re}function Qa(t){return-t.deltaY*(t.deltaMode===1?.05:t.deltaMode?1:.002)*(t.ctrlKey?10:1)}function Ja(){return navigator.maxTouchPoints||"ontouchstart"in this}function Za(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 tu(){var t=Wa,e=Ka,n=Za,r=Qa,i=Ja,s=[0,1/0],o=[[-1/0,-1/0],[1/0,1/0]],a=250,l=Fo,u=Pt("start","zoom","end"),c,h,f,x=500,b=150,_=0,g=10;function v(p){p.property("__zoom",on).on("wheel.zoom",k,{passive:!1}).on("mousedown.zoom",I).on("dblclick.zoom",C).filter(i).on("touchstart.zoom",L).on("touchmove.zoom",U).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",on),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(Re.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 Ga(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;Nn(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),En(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 L(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 U(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 eu=[{title:"IsParent",relationship:ht.NeigbhorIsParent},{title:"IsAChild",relationship:ht.NeigbhorIsAChild},{title:"IsASibling",relationship:ht.NeigbhorIsASibling},{title:"NoneOfTheAbove",relationship:ht.NoneOfTheAbove}],Bn=[ht.NeigbhorIsAChild,ht.NeigbhorIsParent],nu=t=>t.linkType==="Router2Router"?1:Bn.includes(t.relationship)?.5:0,ru=[...Bn,ht.NeigbhorIsASibling],$t=100,iu={BrokenLink:5*$t,Router2Router:2.5*$t,Coordinator2Router:2.5*$t,Coordinator2EndDevice:$t,EndDevice2Router:$t},su=t=>iu[t.linkType]??250,ou=(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}`},au=({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=>ou(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})`})},uu=({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 lu extends et.Component{constructor(){super(...arguments),this.ref=et.createRef(),this.svgRef=et.createRef(),this.simulation=Gs(),this.state={width:0,height:0,visibleLinks:ru,legendIsVisible:!0},this.transform=Re,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(`.${O.node}`),l=o.selectAll(`.${O.link}`),u=o.selectAll(`.${O.linkLabel}`),c=e.links.filter(b=>Ie(n,b.relationships).length);this.simulation.nodes(e.nodes.concat(c)),(x=this.simulation.force("link"))==null||x.links(c),this.simulation.on("tick",()=>au({transform:this.transform,node:a,link:l,linkLabel:u,links:c}));const h=o.selectAll(".everything");tu().extent([[0,0],[i,s]]).scaleExtent([1/10,8]).on("zoom",({transform:b})=>{h.attr("transform",b)})(o),uu({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",Ps().id(r=>r.ieeeAddr).distance(su).strength(nu)).force("charge",po().strength(-700)).force("collisionForce",Os()).force("center",xs(e/2,n/2)).force("x",Ws().strength(.1)).force("y",Ks().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=>Ie(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(rs,{links:l}),S.jsx(vs,{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.jsx("div",{className:"card",children:S.jsxs("div",{className:"card-body",children:[S.jsx("div",{className:"card-title",children:S.jsx(Wn,{})}),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:O.controls,children:[eu.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(O.node,O.Coordinator),children:[S.jsx("svg",{width:"28",height:"28",viewBox:"0 0 28 28",children:S.jsx("polygon",{points:kn(5,5,14)})})," ",e("help_is_coordinator")]}),S.jsx("div",{className:wt(O.node,O.EndDevice),children:e("help_end_device_description")}),S.jsx("div",{className:wt(O.node,O.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.jsx("div",{className:O.container,ref:this.ref,children:e.nodes.length?S.jsxs(et.Fragment,{children:[this.renderMapControls()," ",this.renderMap(),this.renderHelp()]}):this.renderMessage()})}}const xu=Hn("map")(Yn(["networkGraph","networkGraphIsLoading","deviceStates","devices","availability"],Vn)(lu));export{xu as ConnectedMap};
@@ -1 +1 @@
1
- import{as as b,aG as F,p as v,ar as C,au as S,c as D,a as A,r as x,i as E,C as w,j as p}from"./index-67556f42.js";import{D as B}from"./DashboardDevice-53502186.js";import{i as j,b as k,g as I,c as f,D as T}from"./DashboardFeatureWrapper-4eb44544.js";import{_ as G}from"./_baseSet-71bef10a.js";import{c as N}from"./_getAllKeysIn-0e9e88c6.js";import{a as P,g as L,G as K,p as M}from"./persist-2ee41679.js";import{D as y}from"./DEVICES_GLOBAL_NAME-6620c611.js";import"./index-377f0e4f.js";import"./powerSourceTypeToTranslationKey-452dac81.js";import"./DeviceImage-7f9c1d0b.js";import"./index-789be13c.js";import"./isEqual-7263d7f1.js";var O=b,R=G,V=F;function W(t,a,n){for(var e=-1,s=a.length,l={};++e<s;){var r=a[e],i=O(t,r);n(i,r)&&R(l,V(r,t),i)}return l}var $=W,q=C,z=S,H=$,J=N;function Q(t,a){if(t==null)return{};var n=q(J(t),function(e){return[e]});return a=z(a),H(t,n,function(e,s){return a(e,s[0])})}var U=Q;const X=v(U),Y=["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"],Z=["state","brightness","color_temp","mode","sound","occupancy","tamper","alarm"],ee=["light"],re=["",null,void 0],g=(t,a={})=>{const{access:n,property:e,name:s,type:l}=t;let{features:r}=t;if(j(t)||k(t)){r=r.map(d=>g(d,e?a[e]:a)).filter(d=>d);const c=I(r,"property");r=Object.values(c).map(d=>d[0])}const i={...t,features:r};return Z.includes(s)||ee.includes(l)?i:n&&!(n&f.ACCESS_STATE&&!re.includes(a[e]))?!1:s=="voltage"&&a.battery==null?i:Y.includes(s)?!1:n===f.ACCESS_STATE||n===f.ACCESS_STATE+f.ACCESS_READ||Array.isArray(r)&&r.length>0?i:!1},te=["friendly_name","description","ieee_address","manufacturer","type","power_source","model_id","definition.model","definition.vendor"];function ae(t,a,n){return Object.values(t).filter(e=>e.supported).map(e=>({device:e,deviceState:a[e.friendly_name]??{}})).map(({device:e,deviceState:s})=>{var i;const r=(((i=e.definition)==null?void 0:i.exposes)??[]).map(c=>n(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 se(t){const{setDeviceState:a,getDeviceState:n,deviceStates:e,bridgeInfo:s,devices:l}=t,[r,i]=x.useState(()=>P(L(y))??{}),c=o=>{const m={...r,globalFilter:o};i(m),M(y,m)},d=X(l,(o,m)=>E(o,s.config)?!1:r.globalFilter?te.map(u=>w(o,u)).filter(Boolean).map(String).map(u=>u.toLowerCase()).some(u=>u.includes(r.globalFilter.toLowerCase())):!0);return p.jsxs("div",{className:"row",children:[p.jsx("div",{className:"col-12",children:p.jsx("div",{className:"flex-fill card flex-shrink-1",children:p.jsx("div",{className:"card-footer",children:p.jsx(K,{globalFilter:r.globalFilter,setGlobalFilter:c})})})}),ae(d,e,g).map(({device:o,deviceState:m,filteredFeatures:u})=>p.jsx(B,{feature:{features:u},device:o,deviceState:m,onChange:(h,_)=>a(o.friendly_name,_),onRead:(h,_)=>n(o.friendly_name,_),featureWrapperClass:T,lastSeenType:s.config.advanced.last_seen},o.ieee_address))]})}const ge=D(["devices","deviceStates","bridgeInfo"],A)(se);export{ge as ConnectedDashboardPage};
1
+ import{as as b,aG as F,p as v,ar as C,au as S,c as D,a as A,r as x,i as E,C as w,j as p}from"./index-bb99dd37.js";import{D as B}from"./DashboardDevice-8a3e1fbd.js";import{i as j,b as k,g as I,c as f,D as T}from"./DashboardFeatureWrapper-911dd2bf.js";import{_ as G}from"./_baseSet-986ce580.js";import{c as N}from"./_getAllKeysIn-f43f2444.js";import{a as P,g as L,G as K,p as M}from"./persist-fedbbe50.js";import{D as y}from"./DEVICES_GLOBAL_NAME-6620c611.js";import"./index-7bf82366.js";import"./powerSourceTypeToTranslationKey-452dac81.js";import"./DeviceImage-1f4eb445.js";import"./index-9f3e2a2f.js";import"./isEqual-5a5af836.js";var O=b,R=G,V=F;function W(t,a,n){for(var e=-1,s=a.length,l={};++e<s;){var r=a[e],i=O(t,r);n(i,r)&&R(l,V(r,t),i)}return l}var $=W,q=C,z=S,H=$,J=N;function Q(t,a){if(t==null)return{};var n=q(J(t),function(e){return[e]});return a=z(a),H(t,n,function(e,s){return a(e,s[0])})}var U=Q;const X=v(U),Y=["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"],Z=["state","brightness","color_temp","mode","sound","occupancy","tamper","alarm"],ee=["light"],re=["",null,void 0],g=(t,a={})=>{const{access:n,property:e,name:s,type:l}=t;let{features:r}=t;if(j(t)||k(t)){r=r.map(d=>g(d,e?a[e]:a)).filter(d=>d);const c=I(r,"property");r=Object.values(c).map(d=>d[0])}const i={...t,features:r};return Z.includes(s)||ee.includes(l)?i:n&&!(n&f.ACCESS_STATE&&!re.includes(a[e]))?!1:s=="voltage"&&a.battery==null?i:Y.includes(s)?!1:n===f.ACCESS_STATE||n===f.ACCESS_STATE+f.ACCESS_READ||Array.isArray(r)&&r.length>0?i:!1},te=["friendly_name","description","ieee_address","manufacturer","type","power_source","model_id","definition.model","definition.vendor"];function ae(t,a,n){return Object.values(t).filter(e=>e.supported).map(e=>({device:e,deviceState:a[e.friendly_name]??{}})).map(({device:e,deviceState:s})=>{var i;const r=(((i=e.definition)==null?void 0:i.exposes)??[]).map(c=>n(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 se(t){const{setDeviceState:a,getDeviceState:n,deviceStates:e,bridgeInfo:s,devices:l}=t,[r,i]=x.useState(()=>P(L(y))??{}),c=o=>{const m={...r,globalFilter:o};i(m),M(y,m)},d=X(l,(o,m)=>E(o,s.config)?!1:r.globalFilter?te.map(u=>w(o,u)).filter(Boolean).map(String).map(u=>u.toLowerCase()).some(u=>u.includes(r.globalFilter.toLowerCase())):!0);return p.jsxs("div",{className:"row",children:[p.jsx("div",{className:"col-12",children:p.jsx("div",{className:"flex-fill card flex-shrink-1",children:p.jsx("div",{className:"card-footer",children:p.jsx(K,{globalFilter:r.globalFilter,setGlobalFilter:c})})})}),ae(d,e,g).map(({device:o,deviceState:m,filteredFeatures:u})=>p.jsx(B,{feature:{features:u},device:o,deviceState:m,onChange:(h,_)=>a(o.friendly_name,_),onRead:(h,_)=>n(o.friendly_name,_),featureWrapperClass:T,lastSeenType:s.config.advanced.last_seen},o.ieee_address))]})}const ge=D(["devices","deviceStates","bridgeInfo"],A)(se);export{ge as ConnectedDashboardPage};
@@ -1 +1 @@
1
- import{j as e,u as x,L as f,g as j,b as c}from"./index-67556f42.js";import{L as u,P as p}from"./index-377f0e4f.js";import{T as h}from"./DashboardFeatureWrapper-4eb44544.js";import{D as N}from"./DeviceImage-7f9c1d0b.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-bb99dd37.js";import{L as u,P as p}from"./index-7bf82366.js";import{T as h}from"./DashboardFeatureWrapper-911dd2bf.js";import{D as N}from"./DeviceImage-1f4eb445.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};