UNPKG

iobroker.lovelace

Version:

With this adapter you can build visualization for ioBroker with Home Assistant Lovelace UI

24 lines 28.9 kB
export const __rspack_esm_id=36180;export const __rspack_esm_ids=[36180];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 s;if(void 0===r)s={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;s={...r,set(t){i(t),this[`__${String(a)}`]=t,e?.call(this,t)}}}Object.defineProperty(t,a,s)}}},77796(e,t,a){a.d(t,{n:()=>i});const i=(e,t,a=!0,i=!0)=>{let o,r=0;const s=(...s)=>{const n=()=>{r=!1===a?0:Date.now(),o=void 0,e(...s)},l=Date.now();r||!1!==a||(r=l);const c=t-(l-r);c<=0||c>t?(o&&(clearTimeout(o),o=void 0),r=l,e(...s)):o||!1===i||(o=window.setTimeout(n,c))};return s.cancel=()=>{clearTimeout(o),o=void 0,r=0},s}},33062(e,t,a){var i=a(62826),o=a(5124),r=a(22441);class s extends o.WF{willUpdate(e){e.has("color")&&(this.style.backgroundColor=this.color)}render(){return o.s6}constructor(...e){super(...e),this.color="",this.rtl=!1}}s.styles=o.AH`:host{display:inline-block;margin-inline-end:4px;margin-inline-start:initial;border-radius:10px;width:10px;height:10px;vertical-align:middle}:host([rtl]){direction:rtl}`,(0,i.Cg)([(0,r.MZ)()],s.prototype,"color",void 0),(0,i.Cg)([(0,r.MZ)({type:Boolean,reflect:!0})],s.prototype,"rtl",void 0),s=(0,i.Cg)([(0,r.EM)("ha-chart-tooltip-marker")],s)},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),s=a(22441),n=a(63091),l=a(26300),c=e([l]);l=(c.then?(await c)():c)[0];const d="M20,11V13H8L13.5,18.5L12.08,19.92L4.16,12L12.08,4.08L13.5,5.5L8,11H20Z",h="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"===n.G.document.dir?h:d}}(0,o.Cg)([(0,s.MZ)({attribute:!1})],p.prototype,"hass",void 0),(0,o.Cg)([(0,s.MZ)({type:Boolean})],p.prototype,"disabled",void 0),(0,o.Cg)([(0,s.MZ)()],p.prototype,"label",void 0),(0,o.Cg)([(0,s.MZ)()],p.prototype,"href",void 0),(0,o.Cg)([(0,s.MZ)()],p.prototype,"target",void 0),(0,o.Cg)([(0,s.MZ)()],p.prototype,"rel",void 0),(0,o.Cg)([(0,s.MZ)()],p.prototype,"download",void 0),(0,o.Cg)([(0,s.wk)()],p.prototype,"_icon",void 0),p=(0,o.Cg)([(0,s.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:()=>d});var o=a(62826),r=a(5124),s=a(22441),n=a(63672),l=a(18350),c=(a(67094),e([l]));l=(c.then?(await c)():c)[0];class d extends r.WF{render(){return r.qy` <ha-button appearance="plain" variant="neutral" aria-label="${(0,n.J)(this.label)}" title="${(0,n.J)(this.hideTitle?void 0:this.label)}" aria-haspopup="${(0,n.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}}d.shadowRootOptions={mode:"open",delegatesFocus:!0},d.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,s.MZ)({type:Boolean,reflect:!0})],d.prototype,"disabled",void 0),(0,o.Cg)([(0,s.MZ)({type:String})],d.prototype,"path",void 0),(0,o.Cg)([(0,s.MZ)({type:String})],d.prototype,"label",void 0),(0,o.Cg)([(0,s.MZ)({type:String,attribute:"aria-haspopup"})],d.prototype,"ariaHasPopup",void 0),(0,o.Cg)([(0,s.MZ)({attribute:"hide-title",type:Boolean})],d.prototype,"hideTitle",void 0),(0,o.Cg)([(0,s.MZ)({type:Boolean,reflect:!0})],d.prototype,"selected",void 0),(0,o.Cg)([(0,s.MZ)()],d.prototype,"href",void 0),(0,o.Cg)([(0,s.MZ)()],d.prototype,"target",void 0),(0,o.Cg)([(0,s.MZ)()],d.prototype,"rel",void 0),(0,o.Cg)([(0,s.MZ)()],d.prototype,"download",void 0),d=(0,o.Cg)([(0,s.EM)("ha-icon-button")],d),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),s=a(1087),n=a(44249),l=a(26300),c=e([l]);l=(c.then?(await c)():c)[0];const d="M3,6H21V8H3V6M3,11H21V13H3V11M3,16H21V18H3V16Z";class h 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="${d}" @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,n.V)(this.hass.connection,e=>{this._hasNotifications=e.length>0})}_toggleMenu(){(0,s.r)(this,"hass-toggle-menu")}constructor(...e){super(...e),this.narrow=!1,this._hasNotifications=!1,this._show=!1,this._alwaysVisible=!1,this._attachNotifOnConnect=!1}}h.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})],h.prototype,"narrow",void 0),(0,i.Cg)([(0,r.MZ)({attribute:!1})],h.prototype,"hass",void 0),(0,i.Cg)([(0,r.wk)()],h.prototype,"_hasNotifications",void 0),(0,i.Cg)([(0,r.wk)()],h.prototype,"_show",void 0),h=(0,i.Cg)([(0,r.EM)("ha-menu-button")],h),t()}catch(e){t(e)}})},67094(e,t,a){a.r(t),a.d(t,{HaSvgIcon:()=>s});var i=a(62826),o=a(5124),r=a(22441);class s 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>`}}s.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)()],s.prototype,"path",void 0),(0,i.Cg)([(0,r.MZ)({attribute:!1})],s.prototype,"secondaryPath",void 0),(0,i.Cg)([(0,r.MZ)({attribute:!1})],s.prototype,"viewBox",void 0),s=(0,i.Cg)([(0,r.EM)("ha-svg-icon")],s)},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={}}}},72001(e,t,a){a.d(t,{$D:()=>se,$O:()=>oe,Bm:()=>f,Cr:()=>K,Cy:()=>r,DE:()=>d,DJ:()=>b,El:()=>J,Eo:()=>P,GP:()=>l,Hz:()=>s,Is:()=>g,JZ:()=>M,Lx:()=>D,MY:()=>v,PY:()=>G,RE:()=>V,S0:()=>R,SG:()=>y,TH:()=>j,Tx:()=>L,U:()=>Y,VA:()=>F,VL:()=>c,Ve:()=>re,W6:()=>H,YG:()=>h,YP:()=>x,Yn:()=>S,Z1:()=>te,Zp:()=>k,aG:()=>C,aL:()=>n,au:()=>p,dZ:()=>_,fC:()=>q,i4:()=>I,iK:()=>z,in:()=>ie,jF:()=>U,jT:()=>T,lz:()=>m,m:()=>$,mQ:()=>E,mR:()=>X,mX:()=>Q,of:()=>ee,pN:()=>ae,qN:()=>W,re:()=>A,sb:()=>Z,tj:()=>O,u1:()=>o,wI:()=>w,zI:()=>u,zP:()=>B,zb:()=>N});var i=a(37619),o=function(e){return e[e.Idle=0]="Idle",e[e.Including=1]="Including",e[e.Excluding=2]="Excluding",e[e.Busy=3]="Busy",e[e.SmartStart=4]="SmartStart",e}({}),r=function(e){return e[e.Default=0]="Default",e[e.SmartStart=1]="SmartStart",e[e.Insecure=2]="Insecure",e[e.Security_S0=3]="Security_S0",e[e.Security_S2=4]="Security_S2",e}({}),s=function(e){return e[e.Temporary=-2]="Temporary",e[e.None=-1]="None",e[e.S2_Unauthenticated=0]="S2_Unauthenticated",e[e.S2_Authenticated=1]="S2_Authenticated",e[e.S2_AccessControl=2]="S2_AccessControl",e[e.S0_Legacy=7]="S0_Legacy",e}({}),n=function(e){return e[e.SmartStart=0]="SmartStart",e}({}),l=function(e){return e[e.ZWave=0]="ZWave",e[e.ZWaveLongRange=1]="ZWaveLongRange",e}({}),c=function(e){return e[e.Error_Timeout=-1]="Error_Timeout",e[e.Error_Checksum=0]="Error_Checksum",e[e.Error_TransmissionFailed=1]="Error_TransmissionFailed",e[e.Error_InvalidManufacturerID=2]="Error_InvalidManufacturerID",e[e.Error_InvalidFirmwareID=3]="Error_InvalidFirmwareID",e[e.Error_InvalidFirmwareTarget=4]="Error_InvalidFirmwareTarget",e[e.Error_InvalidHeaderInformation=5]="Error_InvalidHeaderInformation",e[e.Error_InvalidHeaderFormat=6]="Error_InvalidHeaderFormat",e[e.Error_InsufficientMemory=7]="Error_InsufficientMemory",e[e.Error_InvalidHardwareVersion=8]="Error_InvalidHardwareVersion",e[e.OK_WaitingForActivation=253]="OK_WaitingForActivation",e[e.OK_NoRestart=254]="OK_NoRestart",e[e.OK_RestartPending=255]="OK_RestartPending",e}({}),d=function(e){return e[e.Error_Timeout=0]="Error_Timeout",e[e.Error_RetryLimitReached=1]="Error_RetryLimitReached",e[e.Error_Aborted=2]="Error_Aborted",e[e.Error_NotSupported=3]="Error_NotSupported",e[e.OK=255]="OK",e}({}),h=function(e){return e[e.Active=0]="Active",e[e.Inactive=1]="Inactive",e}({});var p=function(e){return e[e.NotAvailable=127]="NotAvailable",e[e.ReceiverSaturated=126]="ReceiverSaturated",e[e.NoSignalDetected=125]="NoSignalDetected",e}({}),_=function(e){return e[e.ZWave_9k6=1]="ZWave_9k6",e[e.ZWave_40k=2]="ZWave_40k",e[e.ZWave_100k=3]="ZWave_100k",e[e.LongRange_100k=4]="LongRange_100k",e}({}),u=function(e){return e[e.Unknown=0]="Unknown",e[e.Asleep=1]="Asleep",e[e.Awake=2]="Awake",e[e.Dead=3]="Dead",e[e.Alive=4]="Alive",e}({});const v=(e,t,a,i,o,r,s)=>e.callWS({type:"zwave_js/invoke_cc_api",device_id:t,command_class:a,endpoint:i,method_name:o,parameters:r,wait_for_result:s}),g=(e,t)=>{if(t.device_id&&t.entry_id)throw new Error("Only one of device or entry ID should be supplied.");if(!t.device_id&&!t.entry_id)throw new Error("Either device or entry ID should be supplied.");return(0,i.X)(e,{type:"zwave_js/network_status",device_id:t.device_id,entry_id:t.entry_id})},y=(e,t)=>e.callWS({type:"zwave_js/data_collection_status",entry_id:t}),m=(e,t,a)=>e.callWS({type:"zwave_js/update_data_collection_preference",entry_id:t,opted_in:a}),f=(e,t)=>e.callWS({type:"zwave_js/get_provisioning_entries",entry_id:t}),b=(e,t,a,i,o,r,s,n=0)=>e.connection.subscribeMessage(e=>a(e),{type:"zwave_js/add_node",entry_id:t,inclusion_strategy:n,qr_code_string:o,qr_provisioning_information:i,planned_provisioning_entry:r,dsk:s}),w=(e,t)=>e.callWS({type:"zwave_js/stop_inclusion",entry_id:t}),z=(e,t,a,i)=>e.callWS({type:"zwave_js/grant_security_classes",entry_id:t,securityClasses:a,clientSideAuth:i}),S=(e,t,a)=>e.callWS({type:"zwave_js/try_parse_dsk_from_qr_code_string",entry_id:t,qr_code_string:a}),x=(e,t,a)=>e.callWS({type:"zwave_js/validate_dsk_and_enter_pin",entry_id:t,pin:a}),k=(e,t,a)=>e.callWS({type:"zwave_js/supports_feature",entry_id:t,feature:a}),j=(e,t,a)=>e.callWS({type:"zwave_js/parse_qr_code_string",entry_id:t,qr_code_string:a}),$=(e,t,a,i,o,r)=>e.callWS({type:"zwave_js/lookup_device",entry_id:t,manufacturerId:a,productType:i,productId:o,applicationVersion:r}),C=(e,t,a,i,o,r)=>e.callWS({type:"zwave_js/provision_smart_start_node",entry_id:t,qr_provisioning_information:a,protocol:i,device_name:o,area_id:r}),M=(e,t,a,i)=>e.callWS({type:"zwave_js/unprovision_smart_start_node",entry_id:t,dsk:a,node_id:i}),W=(e,t,a)=>e.connection.subscribeMessage(e=>a(e),{type:"zwave_js/subscribe_new_devices",entry_id:t}),E=(e,t)=>e.callWS({type:"zwave_js/node_status",device_id:t}),I=(e,t)=>e.callWS({type:"zwave_js/node_capabilities",device_id:t}),Z=(e,t,a)=>e.connection.subscribeMessage(e=>a(e),{type:"zwave_js/subscribe_node_status",device_id:t}),A=(e,t)=>e.callWS({type:"zwave_js/node_metadata",device_id:t}),N=(e,t)=>e.callWS({type:"zwave_js/node_alerts",device_id:t}),H=(e,t)=>e.callWS({type:"zwave_js/get_config_parameters",device_id:t}),q=(e,t,a,i,o,r)=>{const s={type:"zwave_js/set_config_parameter",device_id:t,property:a,endpoint:i,value:o,property_key:r};return e.callWS(s)},F=(e,t,a,i,o,r)=>{const s={type:"zwave_js/set_raw_config_parameter",device_id:t,property:a,value:i,value_size:o,value_format:r};return e.callWS(s)},V=(e,t,a)=>e.callWS({type:"zwave_js/get_raw_config_parameter",device_id:t,property:a}).then(e=>e.value),P=(e,t,a)=>e.connection.subscribeMessage(e=>a(e),{type:"zwave_js/refresh_node_info",device_id:t}),T=(e,t)=>e.callWS({type:"zwave_js/rebuild_node_routes",device_id:t}),O=(e,t,a)=>e.connection.subscribeMessage(e=>a(e),{type:"zwave_js/remove_failed_node",device_id:t}),D=(e,t)=>(0,i.X)(e,{type:"zwave_js/begin_rebuilding_routes",entry_id:t}),L=(e,t)=>(0,i.X)(e,{type:"zwave_js/stop_rebuilding_routes",entry_id:t}),R=(e,t,a)=>e.subscribeMessage(e=>a(e),{type:"zwave_js/subscribe_rebuild_routes_progress",entry_id:t}),B=(e,t,a)=>e.connection.subscribeMessage(e=>a(e),{type:"zwave_js/subscribe_controller_statistics",entry_id:t}),U=(e,t,a)=>e.connection.subscribeMessage(e=>a(e),{type:"zwave_js/subscribe_node_statistics",device_id:t}),J=(e,t,a)=>e.connection.subscribeMessage(e=>a(e),{type:"zwave_js/subscribe_s2_inclusion",entry_id:t}),K=(e,t)=>e.callWS({type:"zwave_js/is_node_firmware_update_in_progress",device_id:t}),Y=(e,t)=>e.callWS({type:"zwave_js/is_any_ota_firmware_update_in_progress",entry_id:t}),G=(e,t)=>e.callWS({type:"zwave_js/hard_reset_controller",entry_id:t}),X=async(e,t,a,i,o)=>{const r=new FormData;r.append("file",a),void 0!==i&&r.append("target",i.toString());const s=await e.fetchWithAuth(`/api/zwave_js/firmware/upload/${t}`,{method:"POST",body:r,signal:o});if(200!==s.status)throw new Error(s.statusText)},Q=(e,t,a)=>e.connection.subscribeMessage(e=>a(e),{type:"zwave_js/subscribe_firmware_update_status",device_id:t}),ee=(e,t)=>e.callWS({type:"zwave_js/abort_firmware_update",device_id:t}),te=(e,t,a)=>e.connection.subscribeMessage(a,{type:"zwave_js/backup_nvm",entry_id:t}),ae=(e,t,a,i)=>e.connection.subscribeMessage(i,{type:"zwave_js/restore_nvm",entry_id:t,data:a}),ie=(e,t,a)=>e.connection.subscribeMessage(a,{type:"zwave_js/subscribe_log_updates",entry_id:t}),oe=(e,t)=>e.callWS({type:"zwave_js/get_log_config",entry_id:t}),re=(e,t,a)=>e.callWS({type:"zwave_js/update_log_config",entry_id:t,config:{level:a}}),se=(e,t)=>e.callWS({type:"zwave_js/cancel_secure_bootstrap_s2",entry_id:t})},77158(e,t,a){a.a(e,async function(e,i){try{a.r(t),a.d(t,{ZWaveJSNetworkVisualization:()=>y});a(44114),a(18111),a(22489),a(20116),a(7588),a(61701),a(13579);var o=a(62826),r=a(5124),s=a(22441),n=a(22786),l=a(76774),c=a(91926),d=a(9899),h=a(7358),p=(a(33062),a(36866)),_=a(72001),u=a(81310),v=a(54706),g=e([h,p,u]);[h,p,u]=g.then?(await g)():g;class y extends((0,v.E)(r.WF)){hassSubscribe(){return Object.values(this.hass.devices).filter(e=>e.config_entries.some(e=>e===this.configEntryId)).map(e=>(0,_.jF)(this.hass,e.id,t=>{const a=t.nodeId??t.node_id;this._devices[a]=e,this._nodeStatistics[a]=t,this._handleUpdatedNodeStatistics()}))}connectedCallback(){super.connectedCallback(),this._fetchNetworkStatus()}render(){return r.qy` <hass-subpage .hass="${this.hass}" .narrow="${this.narrow}" .header="${this.hass.localize("ui.panel.config.zwave_js.navigation.visualization")}" back-path="/config/zwave_js/dashboard?config_entry=${this.configEntryId}"> ${this.narrow?r.qy`<div slot="header">${this._renderInputSearch()}</div>`:r.s6} <ha-network-graph .hass="${this.hass}" .searchFilter="${this._searchFilter}" .data="${this._getNetworkData(this._nodeStatuses,this._nodeStatistics)}" .searchableAttributes="${this._getSearchableAttributes}" .tooltipFormatter="${this._tooltipFormatter}" @chart-click="${this._handleChartClick}"> ${this.narrow?r.s6:this._renderInputSearch("search")} </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 _fetchNetworkStatus(){const e=await(0,_.Is)(this.hass.connection,{entry_id:this.configEntryId}),t={};e.controller.nodes.forEach(e=>{t[e.node_id]=e}),this._nodeStatuses=t}_handleSearchChange(e){this._searchFilter=e.target.value??""}_handleChartClick(e){if("node"===e.detail.dataType&&"pointer"===e.detail.event.target.cursor){const{id:t}=e.detail.data,a=this._devices[t];a&&(0,c.oo)(`/config/devices/device/${a.id}`)}}_getLineWidth(e){return e>-50?3:e>-75?2:1}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.isWide=!1,this.narrow=!1,this._nodeStatuses={},this._nodeStatistics={},this._devices={},this._searchFilter="",this._getSearchableAttributes=e=>{const t=this._devices[Number(e)],a=this._nodeStatuses[Number(e)],i=[];if(t?.manufacturer&&i.push(t.manufacturer),t?.model&&i.push(t.model),a){const e=this.hass.localize(`ui.panel.config.zwave_js.node_status.${a.status}`);e&&i.push(e)}return i},this._tooltipFormatter=e=>{const{dataType:t,data:a}=e;if("edge"===t){const{source:e,target:t,value:i}=a,o=this._devices[e],s=this._devices[t],n=o?.name_by_user??o?.name??e,l=s?.name_by_user??s?.name??t,c=this._nodeStatistics[e]?.lwr||this._nodeStatistics[e]?.nlwr;return r.qy`${n}${l}${c?.protocol_data_rate?r.qy`<br><b>${this.hass.localize("ui.panel.config.zwave_js.visualization.data_rate")}:</b> ${this.hass.localize(`ui.panel.config.zwave_js.protocol_data_rate.${c.protocol_data_rate}`)}`:r.s6}${i?r.qy`<br><b>RSSI:</b> ${i}`:r.s6}`}const{id:i,name:o}=a,s=this._devices[i],n=this._nodeStatuses[i],c=s?(0,l.q)(s,this.hass.areas):void 0;return r.qy`<ha-chart-tooltip-marker .color="${String(e.color??"")}"></ha-chart-tooltip-marker> ${o}<br><b>${this.hass.localize("ui.panel.config.zwave_js.visualization.node_id")}:</b> ${i}${s?r.qy`<br><b>${this.hass.localize("ui.panel.config.zwave_js.visualization.manufacturer")}:</b> ${s.manufacturer||"-"}<br><b>${this.hass.localize("ui.panel.config.zwave_js.visualization.model")}:</b> ${s.model||"-"}`:r.s6}${n?r.qy`<br><b>${this.hass.localize("ui.panel.config.zwave_js.visualization.status")}:</b> ${this.hass.localize(`ui.panel.config.zwave_js.node_status.${n.status}`)}${n.zwave_plus_version?r.qy`<br><b>Z-Wave Plus:</b> ${this.hass.localize("ui.panel.config.zwave_js.visualization.version")} ${n.zwave_plus_version}`:r.s6}`:r.s6}${c?r.qy`<br><b>${this.hass.localize("ui.panel.config.zwave_js.visualization.area")}:</b> ${c.name}`:r.s6}`},this._getNetworkData=(0,n.A)((e,t)=>{const a=getComputedStyle(this),i=[],o=[],r=[{name:this.hass.localize("ui.panel.config.zwave_js.visualization.controller"),symbol:"roundRect",itemStyle:{color:a.getPropertyValue("--primary-color")}},{name:this.hass.localize("ui.panel.config.zwave_js.visualization.node"),symbol:"circle",itemStyle:{color:a.getPropertyValue("--cyan-color")}},{name:this.hass.localize("ui.panel.config.zwave_js.visualization.asleep_node"),symbol:"circle",itemStyle:{color:a.getPropertyValue("--disabled-color")}},{name:this.hass.localize("ui.panel.config.zwave_js.visualization.dead_node"),symbol:"circle",itemStyle:{color:a.getPropertyValue("--error-color")}}];if(!Object.keys(e).length)return{nodes:i,links:o,categories:r};let s;return Object.values(e).forEach(e=>{e.is_controller_node&&(s=e.node_id);const t=this._devices[e.node_id],o=t?(0,l.q)(t,this.hass.areas):void 0;i.push({id:String(e.node_id),name:t?.name_by_user??t?.name??String(e.node_id),context:o?.name,value:e.is_controller_node?3:e.is_routing?2:1,category:e.status===_.zI.Dead?3:e.status===_.zI.Asleep?2:e.is_controller_node?0:1,symbolSize:e.is_controller_node?40:e.is_routing?30:20,symbol:e.is_controller_node?"roundRect":"circle",itemStyle:{color:e.status===_.zI.Dead?a.getPropertyValue("--error-color"):e.status===_.zI.Asleep?a.getPropertyValue("--disabled-color"):e.is_controller_node?a.getPropertyValue("--primary-color"):a.getPropertyValue("--cyan-color")},polarDistance:e.is_controller_node?0:e.status===_.zI.Dead?.9:.5,fixed:e.is_controller_node})}),Object.entries(t).forEach(([e,t])=>{const i=t.lwr||t.nlwr;if(i){const t=[...i.repeaters.map((e,t)=>[Object.keys(this._devices).find(t=>this._devices[t]?.id===e)?.[0],i.repeater_rssi[t]]),[s,i.rssi]];let r=e;t.forEach(([e,t])=>{const n="number"==typeof t&&t<=0?t:-100,l=o.find(t=>t.source===r&&t.target===String(e)),c=this._getLineWidth(n);l?(l.value=Math.max(l.value,n),l.lineStyle={...l.lineStyle,width:Math.max(l.lineStyle.width,c),type:i.protocol_data_rate>1?"solid":l.lineStyle.type}):o.push({source:r,target:String(e),value:n,lineStyle:{width:c,color:e===s?a.getPropertyValue("--primary-color"):a.getPropertyValue("--disabled-color"),type:i.protocol_data_rate>1?"solid":"dotted"},symbolSize:3*c}),r=String(e)})}}),{nodes:i,links:o,categories:r}}),this._handleUpdatedNodeStatistics=(0,d.s)(()=>{this._nodeStatistics={...this._nodeStatistics}},500)}}(0,o.Cg)([(0,s.MZ)({attribute:!1})],y.prototype,"route",void 0),(0,o.Cg)([(0,s.MZ)({attribute:"is-wide",type:Boolean})],y.prototype,"isWide",void 0),(0,o.Cg)([(0,s.MZ)({type:Boolean})],y.prototype,"narrow",void 0),(0,o.Cg)([(0,s.MZ)({attribute:!1})],y.prototype,"configEntryId",void 0),(0,o.Cg)([(0,s.wk)()],y.prototype,"_nodeStatuses",void 0),(0,o.Cg)([(0,s.wk)()],y.prototype,"_nodeStatistics",void 0),(0,o.Cg)([(0,s.wk)()],y.prototype,"_devices",void 0),(0,o.Cg)([(0,s.wk)()],y.prototype,"_searchFilter",void 0),y=(0,o.Cg)([(0,s.EM)("zwave_js-network-visualization")],y),i()}catch(e){i(e)}})},14503(e,t,a){a.d(t,{RF:()=>r,dp:()=>l,kO:()=>n,nA:()=>s,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}`,s=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)}`,n=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}`}};