iobroker.lovelace
Version:
With this adapter you can build visualization for ioBroker with Home Assistant Lovelace UI
24 lines • 23.5 kB
JavaScript
export const __rspack_esm_id=62520;export const __rspack_esm_ids=[62520];export const __webpack_modules__={26218(e,t,a){a.d(t,{a:()=>o});const i=(0,a(77796).n)(e=>{history.replaceState({scrollPosition:e},"")},300);function o(e){return(t,a)=>{if("object"==typeof a)throw new Error("This decorator does not support this compilation type.");const o=t.connectedCallback;t.connectedCallback=function(){o.call(this);const t=this[a];t&&this.updateComplete.then(()=>{const a=this.renderRoot.querySelector(e);a&&setTimeout(()=>{a.scrollTop=t},0)})};const r=Object.getOwnPropertyDescriptor(t,a);let n;if(void 0===r)n={get(){return this[`__${String(a)}`]||history.state?.scrollPosition},set(e){i(e),this[`__${String(a)}`]=e},configurable:!0,enumerable:!0};else{const e=r.set;n={...r,set(t){i(t),this[`__${String(a)}`]=t,e?.call(this,t)}}}Object.defineProperty(t,a,n)}}},77796(e,t,a){a.d(t,{n:()=>i});const i=(e,t,a=!0,i=!0)=>{let o,r=0;const n=(...n)=>{const s=()=>{r=!1===a?0:Date.now(),o=void 0,e(...n)},l=Date.now();r||!1!==a||(r=l);const h=t-(l-r);h<=0||h>t?(o&&(clearTimeout(o),o=void 0),r=l,e(...n)):o||!1===i||(o=window.setTimeout(s,h))};return n.cancel=()=>{clearTimeout(o),o=void 0,r=0},n}},90248(e,t,a){a.a(e,async function(e,i){try{a.r(t),a.d(t,{HaIconButtonArrowPrev:()=>p});var o=a(62826),r=a(5124),n=a(22441),s=a(63091),l=a(26300),h=e([l]);l=(h.then?(await h)():h)[0];const c="M20,11V13H8L13.5,18.5L12.08,19.92L4.16,12L12.08,4.08L13.5,5.5L8,11H20Z",d="M4,11V13H16L10.5,18.5L11.92,19.92L19.84,12L11.92,4.08L10.5,5.5L16,11H4Z";class p extends r.WF{render(){return r.qy` <ha-icon-button .disabled="${this.disabled}" .label="${this.label||this.hass?.localize("ui.common.back")||"Back"}" .path="${this._icon}" .href="${this.href}" .target="${this.target}" .rel="${this.rel}" .download="${this.download}"></ha-icon-button> `}constructor(...e){super(...e),this.disabled=!1,this._icon="rtl"===s.G.document.dir?d:c}}(0,o.Cg)([(0,n.MZ)({attribute:!1})],p.prototype,"hass",void 0),(0,o.Cg)([(0,n.MZ)({type:Boolean})],p.prototype,"disabled",void 0),(0,o.Cg)([(0,n.MZ)()],p.prototype,"label",void 0),(0,o.Cg)([(0,n.MZ)()],p.prototype,"href",void 0),(0,o.Cg)([(0,n.MZ)()],p.prototype,"target",void 0),(0,o.Cg)([(0,n.MZ)()],p.prototype,"rel",void 0),(0,o.Cg)([(0,n.MZ)()],p.prototype,"download",void 0),(0,o.Cg)([(0,n.wk)()],p.prototype,"_icon",void 0),p=(0,o.Cg)([(0,n.EM)("ha-icon-button-arrow-prev")],p),i()}catch(e){i(e)}})},26300(e,t,a){a.a(e,async function(e,i){try{a.r(t),a.d(t,{HaIconButton:()=>c});var o=a(62826),r=a(5124),n=a(22441),s=a(63672),l=a(18350),h=(a(67094),e([l]));l=(h.then?(await h)():h)[0];class c extends r.WF{render(){return r.qy` <ha-button appearance="plain" variant="neutral" aria-label="${(0,s.J)(this.label)}" title="${(0,s.J)(this.hideTitle?void 0:this.label)}" aria-haspopup="${(0,s.J)(this.ariaHasPopup)}" .disabled="${this.disabled}" .iconTag="${this.path?"ha-svg-icon":"span"}" .href="${this.href}" .target="${this.target}" .rel="${this.rel}" .download="${this.download}"> ${this.path?r.qy`<ha-svg-icon aria-hidden="true" .path="${this.path}"></ha-svg-icon>`:r.qy`<span><slot></slot></span>`} </ha-button> `}constructor(...e){super(...e),this.disabled=!1,this.hideTitle=!1,this.selected=!1}}c.shadowRootOptions={mode:"open",delegatesFocus:!0},c.styles=r.AH`:host{display:inline-block;outline:0;--ha-button-height:var(--ha-icon-button-size, 48px)}ha-button{position:relative;isolation:isolate;--wa-form-control-padding-inline:var(
--ha-icon-button-padding-inline,
--ha-space-2
);--wa-color-on-normal:currentColor;--wa-color-fill-quiet:transparent;--ha-button-label-overflow:visible}ha-button::after{content:"";position:absolute;inset:0;z-index:-1;border-radius:50%;background-color:currentColor;opacity:0;pointer-events:none}ha-button::part(base){width:var(--wa-form-control-height);aspect-ratio:1;outline-offset:-4px}ha-button::part(label){display:flex}:host([selected]) ha-button::after{opacity:.1}@media (hover:hover){:host(:hover:not([disabled])) ha-button::after{opacity:.1}}`,(0,o.Cg)([(0,n.MZ)({type:Boolean,reflect:!0})],c.prototype,"disabled",void 0),(0,o.Cg)([(0,n.MZ)({type:String})],c.prototype,"path",void 0),(0,o.Cg)([(0,n.MZ)({type:String})],c.prototype,"label",void 0),(0,o.Cg)([(0,n.MZ)({type:String,attribute:"aria-haspopup"})],c.prototype,"ariaHasPopup",void 0),(0,o.Cg)([(0,n.MZ)({attribute:"hide-title",type:Boolean})],c.prototype,"hideTitle",void 0),(0,o.Cg)([(0,n.MZ)({type:Boolean,reflect:!0})],c.prototype,"selected",void 0),(0,o.Cg)([(0,n.MZ)()],c.prototype,"href",void 0),(0,o.Cg)([(0,n.MZ)()],c.prototype,"target",void 0),(0,o.Cg)([(0,n.MZ)()],c.prototype,"rel",void 0),(0,o.Cg)([(0,n.MZ)()],c.prototype,"download",void 0),c=(0,o.Cg)([(0,n.EM)("ha-icon-button")],c),i()}catch(e){i(e)}})},2054(e,t,a){a.a(e,async function(e,t){try{var i=a(62826),o=a(5124),r=a(22441),n=a(1087),s=a(44249),l=a(26300),h=e([l]);l=(h.then?(await h)():h)[0];const c="M3,6H21V8H3V6M3,11H21V13H3V11M3,16H21V18H3V16Z";class d extends o.WF{connectedCallback(){super.connectedCallback(),this._attachNotifOnConnect&&(this._attachNotifOnConnect=!1,this._subscribeNotifications())}disconnectedCallback(){super.disconnectedCallback(),this._unsubNotifications&&(this._attachNotifOnConnect=!0,this._unsubNotifications(),this._unsubNotifications=void 0)}render(){if(!this._show)return o.s6;const e=this._hasNotifications&&(this.narrow||"always_hidden"===this.hass.dockedSidebar);return o.qy` <ha-icon-button .label="${this.hass.localize("ui.sidebar.sidebar_toggle")}" .path="${c}" @click="${this._toggleMenu}"></ha-icon-button> ${e?o.qy`<div class="dot"></div>`:""} `}willUpdate(e){if(super.willUpdate(e),!e.has("narrow")&&!e.has("hass"))return;const t=e.has("hass")?e.get("hass"):this.hass,a=e.has("narrow")?e.get("narrow"):this.narrow,i=!1===t?.kioskMode&&(a||"always_hidden"===t?.dockedSidebar),o=!1===this.hass.kioskMode&&(this.narrow||"always_hidden"===this.hass.dockedSidebar);this.hasUpdated&&i===o||(this._show=o||this._alwaysVisible,o?this._subscribeNotifications():this._unsubNotifications&&(this._unsubNotifications(),this._unsubNotifications=void 0))}_subscribeNotifications(){if(this._unsubNotifications)throw new Error("Already subscribed");this._unsubNotifications=(0,s.V)(this.hass.connection,e=>{this._hasNotifications=e.length>0})}_toggleMenu(){(0,n.r)(this,"hass-toggle-menu")}constructor(...e){super(...e),this.narrow=!1,this._hasNotifications=!1,this._show=!1,this._alwaysVisible=!1,this._attachNotifOnConnect=!1}}d.styles=o.AH`:host{position:relative}.dot{pointer-events:none;position:absolute;background-color:var(--accent-color);width:12px;height:12px;top:9px;right:7px;inset-inline-end:7px;inset-inline-start:initial;border-radius:var(--ha-border-radius-circle);border:2px solid var(--app-header-background-color)}`,(0,i.Cg)([(0,r.MZ)({type:Boolean})],d.prototype,"narrow",void 0),(0,i.Cg)([(0,r.MZ)({attribute:!1})],d.prototype,"hass",void 0),(0,i.Cg)([(0,r.wk)()],d.prototype,"_hasNotifications",void 0),(0,i.Cg)([(0,r.wk)()],d.prototype,"_show",void 0),d=(0,i.Cg)([(0,r.EM)("ha-menu-button")],d),t()}catch(e){t(e)}})},67094(e,t,a){a.r(t),a.d(t,{HaSvgIcon:()=>n});var i=a(62826),o=a(5124),r=a(22441);class n extends o.WF{render(){return o.JW` <svg viewBox="${this.viewBox||"0 0 24 24"}" preserveAspectRatio="xMidYMid meet" focusable="false" role="img" aria-hidden="true"> <g> ${this.path?o.JW`<path class="primary-path" d="${this.path}"></path>`:o.s6} ${this.secondaryPath?o.JW`<path class="secondary-path" d="${this.secondaryPath}"></path>`:o.s6} </g> </svg>`}}n.styles=o.AH`:host{display:var(--ha-icon-display,inline-flex);align-items:center;justify-content:center;position:relative;vertical-align:middle;fill:var(--icon-primary-color,currentcolor);width:var(--mdc-icon-size,24px);height:var(--mdc-icon-size,24px)}svg{width:100%;height:100%;pointer-events:none;display:block}path.primary-path{opacity:var(--icon-primary-opactity, 1)}path.secondary-path{fill:var(--icon-secondary-color,currentcolor);opacity:var(--icon-secondary-opactity, .5)}`,(0,i.Cg)([(0,r.MZ)()],n.prototype,"path",void 0),(0,i.Cg)([(0,r.MZ)({attribute:!1})],n.prototype,"secondaryPath",void 0),(0,i.Cg)([(0,r.MZ)({attribute:!1})],n.prototype,"viewBox",void 0),n=(0,i.Cg)([(0,r.EM)("ha-svg-icon")],n)},44249(e,t,a){a.d(t,{V:()=>i});const i=(e,t)=>{const a=new o,i=e.subscribeMessage(e=>t(a.processMessage(e)),{type:"persistent_notification/subscribe"});return()=>{i.then(e=>e?.())}};class o{processMessage(e){if("removed"===e.type)for(const t of Object.keys(e.notifications))delete this.notifications[t];else this.notifications={...this.notifications,...e.notifications};return Object.values(this.notifications)}constructor(){this.notifications={}}}},84621(e,t,a){a.d(t,{$:()=>x,A2:()=>I,C2:()=>i,Iu:()=>C,Ky:()=>c,Lj:()=>h,Mo:()=>W,On:()=>s,P0:()=>$,PA:()=>l,Qo:()=>z,RW:()=>k,Uc:()=>n,Ui:()=>m,VC:()=>A,VK:()=>Z,Yf:()=>L,ZU:()=>r,cm:()=>v,f7:()=>q,hi:()=>_,i_:()=>u,jm:()=>H,kH:()=>d,ks:()=>p,oM:()=>g,p7:()=>S,pl:()=>y,rv:()=>f,sb:()=>V,tg:()=>M,tv:()=>w,xU:()=>o,zt:()=>b});const i=(e,t,a)=>e.connection.subscribeMessage(e=>a(e),{type:"zha/devices/reconfigure",ieee:t}),o=e=>e.callWS({type:"zha/topology/update"}),r=(e,t,a,i,o)=>e.callWS({type:"zha/devices/clusters/attributes",ieee:t,endpoint_id:a,cluster_id:i,cluster_type:o}),n=e=>e.callWS({type:"zha/devices"}),s=(e,t)=>e.callWS({type:"zha/device",ieee:t}),l=(e,t)=>e.callWS({type:"zha/devices/bindable",ieee:t}),h=(e,t,a)=>e.callWS({type:"zha/devices/bind",source_ieee:t,target_ieee:a}),c=(e,t,a)=>e.callWS({type:"zha/devices/unbind",source_ieee:t,target_ieee:a}),d=(e,t,a,i)=>e.callWS({type:"zha/groups/bind",source_ieee:t,group_id:a,bindings:i}),p=(e,t,a,i)=>e.callWS({type:"zha/groups/unbind",source_ieee:t,group_id:a,bindings:i}),u=(e,t)=>e.callWS({...t,type:"zha/devices/clusters/attributes/value"}),g=(e,t,a,i,o)=>e.callWS({type:"zha/devices/clusters/commands",ieee:t,endpoint_id:a,cluster_id:i,cluster_type:o}),v=(e,t)=>e.callWS({type:"zha/devices/clusters",ieee:t}),y=e=>e.callWS({type:"zha/groups"}),f=(e,t)=>e.callWS({type:"zha/group/remove",group_ids:t}),m=(e,t)=>e.callWS({type:"zha/group",group_id:t}),b=e=>e.callWS({type:"zha/devices/groupable"}),_=(e,t,a)=>e.callWS({type:"zha/group/members/add",group_id:t,members:a}),w=(e,t,a)=>e.callWS({type:"zha/group/members/remove",group_id:t,members:a}),x=(e,t,a,i)=>e.callWS({type:"zha/group/add",group_name:t,group_id:a,members:i}),z=e=>e.callWS({type:"zha/configuration"}),k=(e,t)=>e.callWS({type:"zha/configuration/update",data:t}),$=e=>e.callWS({type:"zha/network/settings"}),C=e=>e.callWS({type:"zha/network/backups/create"}),S=(e,t)=>e.callWS({type:"zha/network/change_channel",new_channel:t}),M="INITIALIZED",W="INTERVIEW_COMPLETE",q="CONFIGURED",Z=["PAIRED",q,W],A=["device_joined","raw_device_initialized","device_fully_initialized"],H="log_output",I="zha_channel_bind",V="zha_channel_configure_reporting",L="zha_channel_cfg_done"},31580(e,t,a){a.d(t,{J8:()=>o,Rr:()=>n,b9:()=>i,iV:()=>r});const i=e=>{let t=e;return"string"==typeof e&&(t=parseInt(e,16)),"0x"+t.toString(16).padStart(4,"0")},o=(e,t)=>{const a=e.user_given_name?e.user_given_name:e.name,i=t.user_given_name?t.user_given_name:t.name;return a.localeCompare(i)},r=(e,t)=>{const a=e.name,i=t.name;return a.localeCompare(i)},n=e=>`${e.name} (Endpoint id: ${e.endpoint_id}, Id: ${i(e.id)}, Type: ${e.type})`},50760(e,t,a){a.d(t,{A:()=>r});a(74423),a(44114),a(18111),a(20116),a(7588);var i=a(76774);function o(e){return e>200?3:e>100?2:1}function r(e,t,a){const r=getComputedStyle(a),n=r.getPropertyValue("--primary-color"),s=r.getPropertyValue("--cyan-color"),l=r.getPropertyValue("--teal-color"),h=r.getPropertyValue("--error-color"),c=[],d=[],p=[{name:t.localize("ui.panel.config.zha.visualization.coordinator"),symbol:"roundRect",itemStyle:{color:n}},{name:t.localize("ui.panel.config.zha.visualization.router"),symbol:"circle",itemStyle:{color:s}},{name:t.localize("ui.panel.config.zha.visualization.end_device"),symbol:"circle",itemStyle:{color:l}},{name:t.localize("ui.panel.config.zha.visualization.offline"),symbol:"circle",itemStyle:{color:h}}];return e.forEach(a=>{const p="Coordinator"===a.device_type;let u;u=a.available?p?0:"Router"===a.device_type?1:2:3;const g=t.devices[a.device_reg_id],v=g?(0,i.q)(g,t.areas):void 0;c.push({id:a.ieee,name:a.user_given_name||a.name||a.ieee,context:v?.name,category:u,value:p?3:"Router"===a.device_type?2:1,symbolSize:p?40:"Router"===a.device_type?30:20,symbol:p?"roundRect":"circle",itemStyle:{color:a.available?p?n:"Router"===a.device_type?s:l:h},polarDistance:0===u?0:1===u?.5:.9,fixed:p});const y=d.filter(e=>e.source===a.ieee||e.target===a.ieee);if(a.routes&&a.routes.length>0)a.routes.forEach(e=>{const t=a.neighbors.find(t=>t.nwk===e.next_hop);if(!t)return;const i=y.find(e=>e.source===t.ieee||e.target===t.ieee);if(i){i.source===a.ieee?i.value=Math.max(i.value,parseInt(t.lqi)):i.reverseValue=Math.max(i.reverseValue??0,parseInt(t.lqi));const r=o(parseInt(t.lqi));i.symbolSize=r/4*6+3,i.lineStyle={...i.lineStyle,width:r,color:"Active"===e.route_status?n:i.lineStyle.color,type:["Child","Parent"].includes(t.relationship)?"solid":i.lineStyle.type}}else{const i=o(parseInt(t.lqi)),s={source:a.ieee,target:t.ieee,value:parseInt(t.lqi),lineStyle:{width:i,color:"Active"===e.route_status?n:r.getPropertyValue("--dark-primary-color"),type:["Child","Parent"].includes(t.relationship)?"solid":"dotted"},symbolSize:i/4*6+3,ignoreForceLayout:"0x0000"!==e.dest_nwk};d.push(s),y.push(s)}});else if(0===y.length){const t=a.neighbors??[];0===t.length&&e.forEach(e=>{if(e.neighbors&&e.neighbors.length>0){const i=e.neighbors.find(e=>e.ieee===a.ieee);i&&t.push({ieee:e.ieee,lqi:i.lqi})}});const i=t.sort((e,t)=>parseInt(t.lqi)-parseInt(e.lqi))[0];i&&d.push({source:a.ieee,target:i.ieee,value:parseInt(i.lqi),symbolSize:5,lineStyle:{width:1,color:r.getPropertyValue("--dark-primary-color"),type:"dotted"},ignoreForceLayout:!0})}}),e.forEach(e=>{if("Coordinator"===e.device_type)d.forEach(t=>{t.source!==e.ieee&&t.target!==e.ieee||(t.ignoreForceLayout=!1)});else{let t;!d.some(a=>{if(a.source===e.ieee||a.target===e.ieee){if(!a.ignoreForceLayout)return!0;a.value>(t?.value??-1)&&(t=a)}return!1})&&t&&(t.ignoreForceLayout=!1)}}),{nodes:c,links:d,categories:p}}},94728(e,t,a){a.a(e,async function(e,i){try{a.r(t),a.d(t,{ZHANetworkVisualizationPage:()=>f});a(44114),a(18111),a(20116);var o=a(62826),r=a(5124),n=a(22441),s=a(76774),l=a(91926),h=a(7358),c=a(36866),d=a(84621),p=a(81310),u=a(31580),g=a(50760),v=e([h,c,p]);[h,c,p]=v.then?(await v)():v;const y="M17.65,6.35C16.2,4.9 14.21,4 12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20C15.73,20 18.84,17.45 19.73,14H17.65C16.83,16.33 14.61,18 12,18A6,6 0 0,1 6,12A6,6 0 0,1 12,6C13.66,6 15.14,6.69 16.22,7.78L13,11H20V4L17.65,6.35Z";class f extends r.WF{firstUpdated(e){super.firstUpdated(e),this.hass&&this._fetchData()}render(){return r.qy` <hass-subpage .hass="${this.hass}" .narrow="${this.narrow}" .header="${this.hass.localize("ui.panel.config.zha.visualization.header")}"> ${this.narrow?r.qy`<div slot="header">${this._renderInputSearch()}</div>`:r.s6} <ha-network-graph .hass="${this.hass}" .searchFilter="${this._searchFilter}" .data="${this._networkData}" .searchableAttributes="${this._getSearchableAttributes}" .tooltipFormatter="${this._tooltipFormatter}" @chart-click="${this._handleChartClick}"> ${this.narrow?r.s6:this._renderInputSearch("search")} <ha-icon-button slot="button" class="refresh-button" .path="${y}" @click="${this._refreshTopology}" label="${this.hass.localize("ui.panel.config.zha.visualization.refresh_topology")}"></ha-icon-button> </ha-network-graph> </hass-subpage> `}_renderInputSearch(e=""){return r.qy`<ha-input-search appearance="outlined" slot="${e}" .value="${this._searchFilter}" @input="${this._handleSearchChange}"></ha-input-search>`}async _fetchData(){this._devices=await(0,d.Uc)(this.hass),this._networkData=(0,g.A)(this._devices,this.hass,this)}_handleSearchChange(e){this._searchFilter=e.target.value??""}async _refreshTopology(){await(0,d.xU)(this.hass),await this._fetchData()}_handleChartClick(e){if("node"===e.detail.dataType&&"pointer"===e.detail.event.target.cursor){const{id:t}=e.detail.data,a=this._devices.find(e=>e.ieee===t);a&&(0,l.oo)(`/config/devices/device/${a.device_reg_id}`)}}static get styles(){return[r.AH`ha-network-graph{height:100%}[slot=header]{display:flex;align-items:center}ha-input-search{flex:1}`]}constructor(...e){super(...e),this.narrow=!1,this.isWide=!1,this._networkData={nodes:[],links:[],categories:[]},this._devices=[],this._searchFilter="",this._getSearchableAttributes=e=>{const t=this._devices.find(t=>t.ieee===e);if(!t)return[];const a=[];return t.user_given_name&&a.push(t.user_given_name),t.manufacturer&&a.push(t.manufacturer),t.model&&a.push(t.model),t.device_type&&a.push(t.device_type),null!=t.nwk&&a.push((0,u.b9)(t.nwk)),a},this._tooltipFormatter=e=>{const{dataType:t,data:a,name:i}=e;if("edge"===t){const{source:e,target:t,value:i}=a,o=this._networkData.nodes.find(e=>e.id===t).name,n=this._networkData.nodes.find(t=>t.id===e).name,s=this._networkData.links.find(a=>a.source===e&&a.target===t)?.reverseValue;return r.qy`${n} → ${o}${i?r.qy` <b>LQI:</b> ${i}`:r.s6}${s?r.qy`<br>${o} → ${n} <b>LQI:</b> ${s}`:r.s6}`}const o=this._devices.find(e=>e.ieee===a.id);if(!o)return r.qy`${i}`;const n=this.hass.devices[o.device_reg_id],l=n?(0,s.q)(n,this.hass.areas):void 0;return r.qy`<b>IEEE: </b>${o.ieee}<br><b>${this.hass.localize("ui.panel.config.zha.visualization.device_type")}: </b>${o.device_type.replace("_"," ")}${null!=o.nwk?r.qy`<br><b>NWK: </b>${(0,u.b9)(o.nwk)}`:r.s6}${null!=o.manufacturer&&null!=o.model?r.qy`<br><b>${this.hass.localize("ui.panel.config.zha.visualization.device")}: </b>${o.manufacturer} ${o.model}`:r.qy`<br><b>${this.hass.localize("ui.panel.config.zha.visualization.device_not_in_db")}</b>`}${l?r.qy`<br><b>${this.hass.localize("ui.panel.config.zha.visualization.area")}: </b>${l.name}`:r.s6}`}}}(0,o.Cg)([(0,n.MZ)({attribute:!1})],f.prototype,"hass",void 0),(0,o.Cg)([(0,n.MZ)({attribute:!1})],f.prototype,"route",void 0),(0,o.Cg)([(0,n.MZ)({type:Boolean,reflect:!0})],f.prototype,"narrow",void 0),(0,o.Cg)([(0,n.MZ)({attribute:"is-wide",type:Boolean})],f.prototype,"isWide",void 0),(0,o.Cg)([(0,n.wk)()],f.prototype,"_networkData",void 0),(0,o.Cg)([(0,n.wk)()],f.prototype,"_devices",void 0),(0,o.Cg)([(0,n.wk)()],f.prototype,"_searchFilter",void 0),f=(0,o.Cg)([(0,n.EM)("zha-network-visualization-page")],f),i()}catch(e){i(e)}})},14503(e,t,a){a.d(t,{RF:()=>r,dp:()=>l,kO:()=>s,nA:()=>n,og:()=>o});var i=a(5124);const o=i.AH`button.link{background:0 0;color:inherit;border:none;padding:0;font:inherit;text-align:left;text-decoration:underline;cursor:pointer;outline:0}`,r=i.AH`:host{font-family:var(--ha-font-family-body);-webkit-font-smoothing:var(--ha-font-smoothing);-moz-osx-font-smoothing:var(--ha-moz-osx-font-smoothing);font-size:var(--ha-font-size-m);font-weight:var(--ha-font-weight-normal);line-height:var(--ha-line-height-normal)}app-header div[sticky]{height:48px}app-toolbar [main-title]{margin-left:20px;margin-inline-start:20px;margin-inline-end:initial}.header{transition:box-shadow .2s linear,width var(--ha-animation-duration-normal) ease,padding-left var(--ha-animation-duration-normal) ease,padding-right var(--ha-animation-duration-normal) ease}@media (prefers-reduced-motion:reduce){.header{transition:box-shadow .2s linear}}h1{font-family:var(--ha-font-family-heading);-webkit-font-smoothing:var(--ha-font-smoothing);-moz-osx-font-smoothing:var(--ha-moz-osx-font-smoothing);font-size:var(--ha-font-size-2xl);font-weight:var(--ha-font-weight-normal);line-height:var(--ha-line-height-condensed)}h2{font-family:var(--ha-font-family-body);-webkit-font-smoothing:var(--ha-font-smoothing);-moz-osx-font-smoothing:var(--ha-moz-osx-font-smoothing);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:var(--ha-font-size-xl);font-weight:var(--ha-font-weight-medium);line-height:var(--ha-line-height-normal)}h3{font-family:var(--ha-font-family-body);-webkit-font-smoothing:var(--ha-font-smoothing);-moz-osx-font-smoothing:var(--ha-moz-osx-font-smoothing);font-size:var(--ha-font-size-l);font-weight:var(--ha-font-weight-normal);line-height:var(--ha-line-height-normal)}a{color:var(--primary-color)}.secondary{color:var(--secondary-text-color)}.error{color:var(--error-color)}.warning{color:var(--error-color)}${o} .card-actions a{text-decoration:none}.card-actions .warning{--mdc-theme-primary:var(--error-color)}.layout.horizontal,.layout.vertical{display:flex}.layout.inline{display:inline-flex}.layout.horizontal{flex-direction:row}.layout.vertical{flex-direction:column}.layout.wrap{flex-wrap:wrap}.layout.no-wrap{flex-wrap:nowrap}.layout.center,.layout.center-center{align-items:center}.layout.bottom{align-items:flex-end}.layout.center-center,.layout.center-justified{justify-content:center}.flex{flex:1;flex-basis:0.000000001px}.flex-auto{flex:1 1 auto}.flex-none{flex:none}.layout.justified{justify-content:space-between}`,n=i.AH`ha-adaptive-dialog,ha-dialog{--mdc-dialog-min-width:400px;--mdc-dialog-max-width:600px;--mdc-dialog-max-width:min(600px, 95vw);--justify-action-buttons:space-between;--dialog-container-padding:var(--safe-area-inset-top, 0) var(--safe-area-inset-right, 0) var(--safe-area-inset-bottom, 0) var(--safe-area-inset-left, 0);--dialog-surface-padding:0px}ha-adaptive-dialog .form,ha-dialog .form{color:var(--primary-text-color)}a{color:var(--primary-color)}@media all and (max-width:450px),all and (max-height:500px){ha-adaptive-dialog,ha-dialog{--mdc-dialog-min-width:100vw;--mdc-dialog-max-width:100vw;--mdc-dialog-min-height:100vh;--mdc-dialog-min-height:100svh;--mdc-dialog-max-height:100vh;--mdc-dialog-max-height:100svh;--dialog-container-padding:0px;--dialog-surface-padding:var(--safe-area-inset-top, 0) var(--safe-area-inset-right, 0) var(--safe-area-inset-bottom, 0) var(--safe-area-inset-left, 0);--vertical-align-dialog:flex-end}ha-dialog{--ha-dialog-border-radius:var(--ha-border-radius-square)}}.error{color:var(--error-color)}`,s=i.AH`ha-adaptive-dialog,ha-dialog{--vertical-align-dialog:flex-start;--dialog-surface-margin-top:var(--ha-space-10);--mdc-dialog-max-height:calc(
100vh - var(--dialog-surface-margin-top) - var(--ha-space-2) - var(
--safe-area-inset-y,
0px
)
);--mdc-dialog-max-height:calc(
100svh - var(--dialog-surface-margin-top) - var(--ha-space-2) - var(
--safe-area-inset-y,
0px
)
);--ha-dialog-max-height:calc(
100vh - var(--dialog-surface-margin-top) - var(--ha-space-2) - var(
--safe-area-inset-y,
0px
)
);--ha-dialog-max-height:calc(
100svh - var(--dialog-surface-margin-top) - var(--ha-space-2) - var(
--safe-area-inset-y,
0px
)
)}@media all and (max-width:450px),all and (max-height:500px){ha-adaptive-dialog,ha-dialog{--dialog-surface-margin-top:0px;--mdc-dialog-min-height:100vh;--mdc-dialog-min-height:100svh;--mdc-dialog-max-height:100vh;--mdc-dialog-max-height:100svh;--ha-dialog-max-height:100vh;--ha-dialog-max-height:100svh}}`,l=i.AH`.ha-scrollbar::-webkit-scrollbar{width:.4rem;height:.4rem}.ha-scrollbar::-webkit-scrollbar-thumb{border-radius:var(--ha-border-radius-sm);background:var(--scrollbar-thumb-color)}.ha-scrollbar{overflow-y:auto;scrollbar-color:var(--scrollbar-thumb-color) transparent;scrollbar-width:thin}`;i.AH`body{background-color:var(--primary-background-color);color:var(--primary-text-color);height:calc(100vh - 32px);width:100vw}`}};