iobroker.tr-064 5.2.1 → 5.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -221,7 +221,7 @@ If you switch from the adapter tr-064-community, you can copy the complete devic
221
221
  Placeholder for the next version (at the beginning of the line):
222
222
  ### **WORK IN PROGRESS**
223
223
  -->
224
- ### 5.2.1 (2026-10-13)
224
+ ### 5.2.2 (2026-10-13)
225
225
  - (@GermanBluefox) Tab "Persons": the devices of a person are chosen by name, MAC or IP from the devices of the Fritz!Box (autocomplete), no need to copy MAC addresses from the tab "Devices" any more
226
226
  - (@GermanBluefox) New tab "Persons" with the presence of persons, groups, guests and unknown devices below `presence`, like the adapter fb-checkpresence: present, last arrival and departure, present/absent since, the sums of the day and the last comings and goings. A person is watched by MAC or IP addresses
227
227
  - (@GermanBluefox) New widget "Person" for vis-2 and `ioBroker.devices`, the person is selected by name; the vis-2 widget "Presence" can list persons
@@ -246,6 +246,7 @@ If you switch from the adapter tr-064-community, you can copy the complete devic
246
246
  - (@GermanBluefox) A click on the missed calls of the tiles ("FRITZ!Box" widget of vis-2 and of `ioBroker.devices`) asks whether the counter is reset and sets `calllists.missed.count` to 0. The counter belongs to the adapter, not to the FRITZ!Box - it counts every missed call since the installation, including the complete call list which is read on the first start. The adapter now confirms a written counter right away instead of at the next poll
247
247
 
248
248
 
249
+
249
250
  [Older changelogs can be found there](CHANGELOG_OLD.md)
250
251
 
251
252
  ## License
@@ -40,7 +40,7 @@
40
40
  "name": "vite-preload-helper"
41
41
  },
42
42
  "src/Components.tsx": {
43
- "file": "assets/Components-BjwJD5XF.js",
43
+ "file": "assets/Components-D7dlXwfS.js",
44
44
  "name": "Components",
45
45
  "src": "src/Components.tsx",
46
46
  "isEntry": true,
@@ -0,0 +1,4 @@
1
+ import{a as e,i as t,n,o as r,r as i,s as a}from"./react-pcwjPi4V.js";import{a as o,i as s,n as c,o as l,r as u,t as d}from"./_virtual_mf___mfe_internal__DevicesWidgetTr064Set__mf_owner__212620212104624__loadShare__shared-4SQSrCDF.js";var f=u==null?void 0:u.alpha;function p(e,t){try{return f(e,t)}catch{return`color-mix(in srgb, ${e} ${Math.round(t*100)}%, transparent)`}}function m(e){e.stopPropagation()}var h=(e,t)=>`data:image/svg+xml,${encodeURIComponent(`<svg xmlns="http://www.w3.org/2000/svg" width="${e}" height="${t}" viewBox="0 0 ${e} ${t}"><rect x="1" y="1" width="${e-2}" height="${t-2}" rx="3" fill="none" stroke="currentColor" stroke-width="2"/></svg>`)}`,g=[{value:`1x1`,label:`1×1`,icon:h(18,18)},{value:`2x1`,label:`2×1`,icon:h(32,18)},{value:`2x0.5`,label:`2×½`,icon:h(32,12)},{value:`2x2`,label:`2×2`,icon:h(32,32)}],_=`28px`;function v(e){return`max(0px, calc(${_} - ${e}))`}function y(e,t){switch(t){case`2x0.5`:return l.getStyleWide(e);case`2x1`:return l.getStyleWideTall(e);case`2x2`:{let t=l.getStyleHuge;return t?t(e):{...l.getStyleCompact(e),gridColumn:`span 2`,gridRow:`span 2`}}default:return l.getStyleCompact(e)}}var{Alert:b,Box:x,Button:S,Checkbox:ee,CircularProgress:C,Dialog:te,DialogActions:ne,DialogContent:re,DialogTitle:ie,Divider:ae,FormControlLabel:oe,IconButton:se,SvgIcon:ce,Table:w,TableBody:T,TableCell:E,TableContainer:le,TableHead:D,TableRow:ue,TextField:de,ThemeProvider:fe,ToggleButton:pe,ToggleButtonGroup:me,Tooltip:he,Typography:O,alpha:k,createTheme:ge,styled:_e,useMediaQuery:ve,useTheme:ye}=r(`@mui/material`),{AccountTree:be,AcUnit:xe,Blinds:Se,Close:Ce,Computer:we,DeveloperBoard:Te,DevicesOther:Ee,Doorbell:De,Edit:Oe,Lan:ke,Lightbulb:Ae,Lock:je,Monitor:Me,Phone:Ne,PhoneInTalk:Pe,Power:Fe,Print:Ie,Refresh:Le,Router:Re,Sensors:ze,Smartphone:Be,SmartToy:Ve,Speaker:He,SportsEsports:Ue,Storage:We,TableRows:Ge,Tablet:Ke,Thermostat:qe,TouchApp:Je,Tv:Ye,Videocam:Xe,Watch:Ze}=r(`@mui/icons-material`);function Qe(e){if(!e)return`other`;if(e.band)return e.band;let t=(e.interface||``).toUpperCase();return/(^|:)2(G|,4|\.4)/.test(t)?`2.4`:/(^|:)5G/.test(t)?`5`:/(^|:)6G/.test(t)?`6`:(e.type||``).toUpperCase()===`LAN`||t.startsWith(`LAN`)||t.startsWith(`ETH`)?`LAN`:`other`}function $e(e){return!!e&&(e.state||``).toUpperCase()===`CONNECTED`}function et(e,t){return e?!$e(e)&&$e(t)?t:e:t}function tt(e){return e.configured||e.name||e.mac||e.uid}function nt(e,t){return!!e.node.configured==!!t.node.configured?e.connected===t.connected?tt(e.node).localeCompare(tt(t.node)):e.connected?-1:1:e.node.configured?-1:1}function rt(e){return{...e,from:e.to,to:e.from,curDown:e.curUp,curUp:e.curDown,maxDown:e.maxUp,maxUp:e.maxDown,rcpiFrom:e.rcpiTo,rcpiTo:e.rcpiFrom,rsniFrom:e.rsniTo,rsniTo:e.rsniFrom}}function it(e){return(e==null?void 0:e.rcpiTo)??(e==null?void 0:e.rcpiFrom)}function at(e){return e>=-60?4:e>=-70?3:e>=-80?2:1}function ot(e,t){let n=(e==null?void 0:e.nodes)||[],r=(e==null?void 0:e.links)||[],i=new Map;n.forEach(e=>i.set(e.uid,e));let a=e=>{var t;let n=(t=i.get(e))==null?void 0:t.role;return!!n&&n!==`client`},o=new Map,s=new Map;for(let e of r)i.has(e.from)&&i.has(e.to)&&e.from!==e.to&&(a(e.from)&&a(e.to)?o.set(e.to,et(o.get(e.to),e)):a(e.from)?s.set(e.to,et(s.get(e.to),e)):a(e.to)&&s.set(e.from,et(s.get(e.from),rt(e))));let c=n.filter(e=>e.role!==`client`);c.forEach(e=>e.role===`master`&&o.delete(e.uid));let l=new Map;c.forEach(e=>l.set(e.uid,{node:e,uplink:o.get(e.uid),clients:[],children:[]}));let u=0,d=[],f=[];for(let e of n){var p;if(e.role!==`client`)continue;u++;let n=s.get(e.uid),r=$e(n);if(t.onlyConfigured&&!e.configured||!r&&!t.showDisconnected&&!e.configured)continue;let i={node:e,link:n,connected:r},a=n?l.get(n.from):void 0;a?a.clients.push(i):d.push(i);let o=n?Qe(n):``;f.push({uid:e.uid,name:tt(e),hostName:e.name,vendor:e.vendor,randomMac:e.randomMac,configured:!!e.configured,accessPoint:(a==null||(p=a.node)==null?void 0:p.name)||``,kind:o,type:(n==null?void 0:n.type)||``,connected:r,curDown:n==null?void 0:n.curDown,curUp:n==null?void 0:n.curUp,rcpi:it(n),position:e.position,deviceClass:e.deviceClass,lastConnected:r||n==null?void 0:n.lastConnected,mac:e.mac,ip:e.ip})}l.forEach(e=>e.clients.sort(nt)),d.sort(nt),f.sort((e,t)=>e.configured===t.configured?e.connected===t.connected?e.name.localeCompare(t.name):e.connected?-1:1:e.configured?-1:1);let m=[...c].sort((e,t)=>{let n=e=>e.role===`master`?0:e.role===`slave`?1:2;return n(e)-n(t)||e.name.localeCompare(t.name)}),h=new Set,g=[],_=e=>{h.add(e.node.uid);for(let n of m){var t;let r=l.get(n.uid);!h.has(n.uid)&&((t=r.uplink)==null?void 0:t.from)===e.node.uid&&(e.children.push(r),_(r))}};for(let e of m){let t=l.get(e.uid),n=t.uplink&&l.get(t.uplink.from);!h.has(e.uid)&&(!n||e.role===`master`)&&(g.push(t),_(t))}for(let e of m)if(!h.has(e.uid)){let t=l.get(e.uid);g.push(t),_(t)}return{roots:g,unassigned:d,rows:f,total:u}}function st(e,t){return t&&ct(e)?56:40}function ct(e){return e.clients.some(e=>e.connected&&it(e.link)!==void 0)}function lt(e){return e<=8?1:e<=20?2:e<=48?3:4}function ut(e,t,n){let r=Math.ceil(e/t);return 60+(e?r*(n+6)-6+10:0)}function dt(e,t=!1){let n=[],r=[],i=new Map,a=e=>{let n=e.clients.length,r=lt(n);return{w:Math.max(240,r*340+(r-1)*6+20),h:ut(n,r,st(e,t)),columns:r}},o=e=>{let t=a(e).w,n=e.children.reduce((e,t)=>e+o(t),0),r=Math.max(t,n+32*Math.max(0,e.children.length-1));return i.set(e,r),r},s=0,c=(e,o,l)=>{let u=a(e),d=i.get(e),f={view:e,x:o+(d-u.w)/2,y:l,w:u.w,h:u.h,columns:u.columns,chipW:340,chipH:st(e,t)};n.push(f),s=Math.max(s,l+u.h);let p=o+(d-(e.children.reduce((e,t)=>e+i.get(t),0)+32*Math.max(0,e.children.length-1)))/2;for(let t of e.children){let e=c(t,p,l+u.h+76);if(t.uplink){let n=f.x+f.w/2,i=f.y+f.h,a=e.x+e.w/2,o=e.y,s=i+(o-i)/2;r.push({link:t.uplink,d:`M ${n} ${i} V ${s} H ${a} V ${o}`,labelX:a+6,labelY:o-10})}p+=i.get(t)+32}return f},l=16;for(let t of e)o(t),c(t,l,16),l+=i.get(t)+64;return{kind:`tree`,cards:n,edges:r,width:Math.max(l-64+16,0),height:s+16}}function ft(e,t,n=!1){let r=[],i=[],a=8,o=(e,s)=>{let c=8+s*22,l=Math.max(232,t-8-c),u=l-20,d=e.clients.length,f=Math.max(1,Math.min(d||1,Math.floor((u+6)/218))),p=Math.min(420,(u-(f-1)*6)/f),m=st(e,n),h={view:e,x:c,y:a,w:l,h:ut(d,f,m),columns:f,chipW:p,chipH:m};r.push(h),a+=h.h+30;let g=h.x+11,_=h.y+h.h;for(let t of e.children){let e=o(t,s+1);if(t.uplink){let n=e.y+24;i.push({link:t.uplink,d:`M ${g} ${_} V ${n} H ${e.x}`,labelX:e.x+4,labelY:e.y-8}),_=n}}return h};for(let t of e)o(t,0);return{kind:`stack`,cards:r,edges:i,width:t,height:Math.max(a-30+8,0)}}function pt(e,t,n=!1){let r=dt(e,n);return r.width<=t?r:ft(e,t,n)}function A(e,t,n=!1){return Math.max(3,Math.floor(e/(t*(n?.62:.56))))}function j(e,t){return e.length>t?`${e.substring(0,Math.max(1,t-1))}…`:e}function M(e){if(!e)return`–`;let t=e/1e3;return t>=10?Math.round(t).toString():t.toFixed(1)}var mt=a((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.fragment`);function r(e,n,r){var i=null;if(r!==void 0&&(i=``+r),n.key!==void 0&&(i=``+n.key),`key`in n)for(var a in r={},n)a!==`key`&&(r[a]=n[a]);else r=n;return n=r.ref,{$$typeof:t,type:e,key:i,ref:n===void 0?null:n,props:r}}e.Fragment=n,e.jsx=r,e.jsxs=r})),N=a(((e,t)=>{t.exports=mt()}))(),ht={COMPUTER:we,STORAGE:We,SMARTPHONE:Be,TABLET:Ke,GAMING_DEVICE:Ue,SET_TOP_BOX:Ye,PRINTER:Ie,NETWORK_SWITCH:ke,SPEAKER:He,ROBOT:Ve,PHONE:Ne,IP_PHONE:Pe,CIRCUIT_BOARD:Te,CAMERA:Xe,DOOR_LOCK:je,DOOR_BELL:De,SHUTTER:Se,AIR_CONDITIONER:xe,LAMP:Ae,THERMOSTAT:qe,BUTTON:Je,SOCKET:Fe,SENSOR:ze,MONITOR:Me,SMART_WATCH:Ze,ROUTER:Re};function gt(e){return e&&ht[e]||Ee}function _t(e){let t=gt(e.deviceClass);return(0,N.jsx)(t,{x:e.x,y:e.y,width:e.size,height:e.size,sx:{width:e.size,height:e.size,color:e.color}})}function P(e){"@babel/helpers - typeof";return P=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},P(e)}function vt(e,t){if(P(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(P(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function yt(e){var t=vt(e,`string`);return P(t)==`symbol`?t:t+``}function F(e,t,n){return(t=yt(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var bt=`not alive`,xt=`not connected`,St=`not supported`,I=`timeout`;async function Ct(e,t,n=2e4){try{let r=await e.getState(`system.adapter.${t}.alive`);if(!(r!=null&&r.val))return{error:bt,nodes:[],links:[]};let i,a=new Promise(e=>{i=setTimeout(()=>e(I),n)}),o=e.sendTo(t,`mesh`,{}),s=await Promise.race([o,a]);return clearTimeout(i),s===`timeout`||!s||typeof s!=`object`?{error:I,nodes:[],links:[]}:{error:s.error,ts:s.ts,nodes:Array.isArray(s.nodes)?s.nodes:[],links:Array.isArray(s.links)?s.links:[],canRename:!!s.canRename}}catch(e){return{error:(e==null?void 0:e.message)||String(e),nodes:[],links:[]}}}async function wt(e,t,n,r,i=2e4){try{let a=await e.getState(`system.adapter.${t}.alive`);if(!(a!=null&&a.val))return bt;let o,s=new Promise(e=>{o=setTimeout(()=>e(I),i)}),c=e.sendTo(t,`setHostName`,{mac:n,name:r}),l=await Promise.race([c,s]);return clearTimeout(o),l===`timeout`||!l||typeof l!=`object`?I:l.error||void 0}catch(e){return(e==null?void 0:e.message)||String(e)}}var Tt=class{constructor(e){F(this,`options`,void 0),F(this,`timer`,null),F(this,`running`,!1),F(this,`stopped`,!0),F(this,`current`,{data:null,loading:!1,error:null}),this.options=e}get state(){return this.current}start(){this.stop(),this.stopped=!1,this.refresh();let e=this.options.interval??30;e>0&&(this.timer=setInterval(()=>void this.refresh(),e*1e3))}stop(){this.stopped=!0,this.timer&&=(clearInterval(this.timer),null)}async refresh(){if(this.running||this.stopped)return;this.running=!0,this.update({loading:!0});let e=await Ct(this.options.socket,this.options.instanceId,this.options.timeout);this.running=!1,!this.stopped&&(e.error?e.error===`not alive`?this.update({data:null,loading:!1,error:e.error}):this.update({loading:!1,error:e.error}):this.update({data:e,loading:!1,error:null}))}async rename(e,t){let n=await wt(this.options.socket,this.options.instanceId,e,t,this.options.timeout);return!n&&!this.stopped&&await this.refresh(),n}update(e){this.current={...this.current,...e},this.stopped||this.options.onChange(this.current)}},L={2.4:`#f59e0b`,5:`#3b82f6`,6:`#8b5cf6`,LAN:`#10b981`,other:`#9ca3af`},Et=13,Dt=26,Ot=16,kt=63,At=600,jt=63,Mt=760,Nt=480;function Pt(e){let t={onlyConfigured:!1,showDisconnected:!1,showVendor:!0,viewMode:`graph`};try{let n=JSON.parse(window.localStorage.getItem(e)||`{}`);t.onlyConfigured=!!n.onlyConfigured,t.showDisconnected=!!n.showDisconnected,t.showVendor=n.showVendor!==!1,t.viewMode=n.viewMode===`table`?`table`:`graph`}catch{}return t}function Ft(e,t){try{window.localStorage.setItem(e,JSON.stringify(t))}catch{}}function R(e,t){return e.vendor||(e.randomMac?t(`tr064_randomMac`):``)}function z(e){switch(e){case`2.4`:case`5`:case`6`:return`${e} GHz`;case`LAN`:return`LAN`;default:return``}}function It(e,t){switch(e){case bt:return{severity:`info`,text:t(`tr064_startInstance`)};case xt:return{severity:`warning`,text:t(`tr064_notConnected`)};case St:return{severity:`warning`,text:t(`tr064_notSupported`)};case I:return{severity:`warning`,text:t(`tr064_timeout`)};default:return{severity:`warning`,text:t(`tr064_error`,e)}}}function Lt(e){return e.connected&&(e.curDown||e.curUp)?`↓ ${M(e.curDown)} / ↑ ${M(e.curUp)}`:``}var Rt=`#ef4444`;function zt(e,t,n){return at(t)===1||n===`too_far`?Rt:L[e||`other`]}function Bt(e){let t=at(e.rcpi);return(0,N.jsx)(`g`,{transform:`translate(${e.x}, ${e.y})`,children:[0,1,2,3].map(n=>{let r=3+n*2.5;return(0,N.jsx)(`rect`,{x:n*3.3,y:-r,width:2.4,height:r,rx:.8,fill:e.color,opacity:n<t?1:.22},n)})})}function Vt(e){return e===void 0?``:`${e} dBm`}function Ht(e,t){return e?t(`tr064_lastSeen`,new Date(e).toLocaleString()):``}function Ut(e,t,n){let r=[];return((e==null?void 0:e.rcpiTo)!==void 0||(e==null?void 0:e.rcpiFrom)!==void 0)&&r.push(n(`tr064_signalTooltip`,e.rcpiTo===void 0?`–`:String(e.rcpiTo),e.rcpiFrom===void 0?`–`:String(e.rcpiFrom))),((e==null?void 0:e.rsniTo)!==void 0||(e==null?void 0:e.rsniFrom)!==void 0)&&r.push(n(`tr064_noiseTooltip`,e.rsniTo===void 0?`–`:String(e.rsniTo),e.rsniFrom===void 0?`–`:String(e.rsniFrom))),(t===`too_far`||t===`too_close`)&&r.push(n(`tr064_position_${t}`)),r}function Wt(e){return(0,N.jsx)(x,{component:`span`,sx:{display:`inline-block`,flexShrink:0,width:10,height:10,borderRadius:`2px`,backgroundColor:L[e.kind]}})}function Gt(){return(0,N.jsx)(x,{sx:{display:`flex`,gap:1.5,alignItems:`center`,flexWrap:`wrap`},children:[`2.4`,`5`,`6`,`LAN`].map(e=>(0,N.jsxs)(x,{sx:{display:`flex`,alignItems:`center`,gap:.5},children:[(0,N.jsx)(Wt,{kind:e}),(0,N.jsx)(O,{variant:`caption`,children:z(e)})]},e))})}function Kt(e,t,n,r){var i;let a=Qe(e.link),o=((i=e.link.state)==null?void 0:i.toUpperCase())===`CONNECTED`,s=[z(a)||e.link.type,o&&e.link.curDown?`${M(e.link.curDown)} Mbit/s`:``].filter(Boolean).join(` · `),c=[`${e.link.interface||e.link.type} - ${r(o?`tr064_connected`:`tr064_disconnected`)}`,e.link.curDown||e.link.curUp?r(`tr064_rateTooltip`,M(e.link.curDown),M(e.link.curUp)):``,...Ut(e.link,void 0,r),o?``:Ht(e.link.lastConnected,r)].filter(Boolean);return(0,N.jsxs)(`g`,{children:[(0,N.jsx)(`title`,{children:c.join(`
2
+ `)}),(0,N.jsx)(`path`,{d:e.d,fill:`none`,stroke:L[a],strokeWidth:2.5,strokeDasharray:o?void 0:`6 4`}),(0,N.jsx)(`text`,{x:e.labelX,y:e.labelY,fontSize:11,fill:n.palette.text.secondary,children:s})]},`edge-${t}`)}function qt(e,t,n,r){let i=t.palette,a=e.view.node,o=a?a.name||a.mac:n(`tr064_notAssigned`),s=a?n(`tr064_role_${a.role}`):``,c=a!=null&&a.model&&a.model!==a.name?a.model:``,l=a&&r.showVendor?R(a,n):``,u=[c||l,(a==null?void 0:a.ip)||``,s].filter(Boolean).join(` · `),d=a&&a.role!==`master`&&a.mac&&r.onRename?a.uid:``,f=e.view.clients.length,p=f===1?n(`tr064_oneDevice`):f?n(`tr064_devices`,f):``,m=A(e.w-20-(p?p.length*6.2+8:0),14,!0),h=A(e.w-20,11);return(0,N.jsxs)(`g`,{transform:`translate(${e.x}, ${e.y})`,children:[(0,N.jsx)(`title`,{children:[o,a==null?void 0:a.model,a?R(a,n):``,a==null?void 0:a.mac,a==null?void 0:a.ip,d?n(`tr064_clickToRename`):``].filter(Boolean).join(`
3
+ `)}),(0,N.jsx)(`rect`,{width:e.w,height:e.h,rx:8,fill:i.background.paper,stroke:(a==null?void 0:a.role)===`master`?i.primary.main:i.divider,strokeWidth:(a==null?void 0:a.role)===`master`?2:1,strokeDasharray:a?void 0:`5 4`}),(0,N.jsx)(`text`,{x:10,y:24,fontSize:14,fontWeight:600,fill:i.text.primary,style:d?{cursor:`pointer`}:void 0,onClick:d?()=>r.onRename(d):void 0,children:j(o,m)}),(0,N.jsx)(`text`,{x:10,y:42,fontSize:11,fill:i.text.secondary,children:j(u,h)}),(0,N.jsx)(`text`,{x:e.w-10,y:24,fontSize:11,textAnchor:`end`,fill:i.text.secondary,children:p}),e.view.clients.map((t,a)=>{var o;let s=a%e.columns,c=Math.floor(a/e.columns),l=10+s*(e.chipW+6),u=60+c*(e.chipH+6),d=Qe(t.link),f=!!t.node.configured,p=t.node.configured||t.node.name||t.node.mac,m=r.showVendor?R(t.node,n):``,h=e.chipH>=56&&!!m,g=t.connected?it(t.link):void 0,_=Math.max(z(d)?34:0,g===void 0?0:kt),v=e.chipW-47-_-6,y=g===void 0?e.chipW-47-8:v,b=t.node.ip?`IP: ${t.node.ip}`:``,x=!h&&b&&m?b.length*5.7+10:0,S=g===void 0?``:zt(d,g,t.node.position),ee=[f?n(`tr064_configuredAs`,t.node.configured):``,t.node.name,R(t.node,n),t.node.mac,t.node.ip,t.link?t.link.interface||t.link.type:``,t.connected?n(`tr064_connected`):n(`tr064_disconnected`),t.link&&(t.link.curDown||t.link.curUp)?n(`tr064_rateTooltip`,M(t.link.curDown),M(t.link.curUp)):``,...t.connected?Ut(t.link,t.node.position,n):[],t.connected?``:Ht((o=t.link)==null?void 0:o.lastConnected,n),r.onRename?n(`tr064_clickToRename`):``].filter(Boolean);return(0,N.jsxs)(`g`,{transform:`translate(${l}, ${u})`,opacity:t.connected?1:f?.85:.6,style:r.onRename?{cursor:`pointer`}:void 0,onClick:r.onRename?()=>r.onRename(t.node.uid):void 0,children:[(0,N.jsx)(`title`,{children:ee.join(`
4
+ `)}),(0,N.jsx)(`rect`,{width:e.chipW,height:e.chipH,rx:7,fill:i.action.hover,stroke:f?i.primary.main:i.divider,strokeWidth:f?2:1,strokeDasharray:t.connected?void 0:`4 3`}),(0,N.jsx)(`path`,{d:`M 7 0.5 H 7 A 6.5 6.5 0 0 0 0.5 7 V ${e.chipH-7} A 6.5 6.5 0 0 0 7 ${e.chipH-.5} V 0.5 Z`,fill:L[d]}),(0,N.jsx)(`rect`,{x:Et,y:(e.chipH-Dt)/2,width:Dt,height:Dt,rx:6,fill:k(L[d],.14)}),(0,N.jsx)(_t,{deviceClass:t.node.deviceClass,x:18,y:(e.chipH-Ot)/2,size:Ot,color:L[d]}),(0,N.jsx)(`text`,{x:47,y:h?19:17,fontSize:12.5,fontWeight:f?700:600,fill:f?i.primary.main:i.text.primary,children:j(p,A(v,12.5,!0))}),m?(0,N.jsx)(`text`,{x:47,y:h?34:31,fontSize:10,fontStyle:`italic`,opacity:.75,fill:i.text.secondary,children:j(m,A(y-x,10))}):null,b?(0,N.jsx)(`text`,{x:x?47+y:47,y:h?48:31,fontSize:10,textAnchor:x?`end`:`start`,fill:i.text.secondary,children:j(b,A(y,10))}):null,(0,N.jsx)(`text`,{x:e.chipW-8,y:h?19:16,fontSize:10,textAnchor:`end`,fill:i.text.secondary,children:z(d)}),g===void 0?null:(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)(Bt,{rcpi:g,x:e.chipW-8-kt,y:h?41:34,color:S}),(0,N.jsx)(`text`,{x:e.chipW-8,y:h?41:34,fontSize:10.5,textAnchor:`end`,fill:S,children:Vt(g)})]})]},t.node.uid)})]},`card-${(a==null?void 0:a.uid)||`unassigned`}`)}function Jt(e){let{tree:t,width:n,t:r,theme:i,showVendor:a,onRename:o}=e,s=n>=Mt,c=n>=Nt,l=c?void 0:{px:1};return(0,N.jsxs)(w,{size:`small`,stickyHeader:!0,children:[(0,N.jsx)(D,{children:(0,N.jsxs)(ue,{children:[(0,N.jsx)(E,{sx:l,children:r(`tr064_device`)}),c?(0,N.jsx)(E,{children:r(`tr064_accessPoint`)}):null,(0,N.jsx)(E,{sx:l,children:r(`tr064_connection`)}),c?(0,N.jsx)(E,{children:r(`tr064_state`)}):null,c?(0,N.jsx)(E,{children:r(`tr064_signal`)}):null,c?(0,N.jsx)(E,{children:r(`tr064_rate`)}):null,s?(0,N.jsx)(E,{children:r(`tr064_mac`)}):null,s?(0,N.jsx)(E,{children:r(`tr064_ip`)}):null,o?(0,N.jsx)(E,{sx:{width:40}}):null]})}),(0,N.jsx)(T,{children:t.rows.map(e=>(0,N.jsxs)(ue,{sx:{opacity:e.connected?1:.6},children:[(0,N.jsxs)(E,{sx:{...l,fontWeight:e.configured?700:400,color:e.configured?i.palette.primary.main:void 0,overflowWrap:`anywhere`},title:e.configured&&e.hostName!==e.name?e.hostName:void 0,children:[(0,N.jsxs)(x,{sx:{display:`flex`,alignItems:`center`,gap:.75},children:[(0,N.jsx)(x,{component:gt(e.deviceClass),sx:{fontSize:17,flex:`0 0 auto`,color:e.kind?L[e.kind]:`text.secondary`}}),(0,N.jsx)(`span`,{children:e.name})]}),a&&R(e,r)?(0,N.jsx)(O,{variant:`caption`,component:`div`,color:`text.secondary`,sx:{fontStyle:`italic`,opacity:.7,fontWeight:400},children:R(e,r)}):null,c?null:(0,N.jsx)(O,{variant:`caption`,component:`div`,color:`text.secondary`,sx:{fontWeight:400},children:[e.accessPoint||r(`tr064_notAssigned`),e.connected?``:r(`tr064_disconnected`)].filter(Boolean).join(` · `)})]}),c?(0,N.jsx)(E,{children:e.accessPoint||r(`tr064_notAssigned`)}):null,(0,N.jsx)(E,{sx:{...l,whiteSpace:`nowrap`},children:e.kind?(0,N.jsxs)(x,{sx:{display:`flex`,alignItems:`center`,gap:.75},children:[(0,N.jsx)(Wt,{kind:e.kind}),z(e.kind)||e.type]}):null}),c?(0,N.jsxs)(E,{children:[e.connected?r(`tr064_connected`):r(`tr064_disconnected`),!e.connected&&e.lastConnected?(0,N.jsx)(O,{variant:`caption`,component:`div`,color:`text.secondary`,children:Ht(e.lastConnected,r)}):null]}):null,c?(0,N.jsxs)(E,{sx:{whiteSpace:`nowrap`},children:[e.connected&&e.rcpi!==void 0?(0,N.jsxs)(x,{sx:{display:`flex`,alignItems:`center`,gap:.75},children:[(0,N.jsx)(x,{component:`svg`,viewBox:`0 0 13 11`,sx:{width:13,height:11,flex:`0 0 auto`},children:(0,N.jsx)(Bt,{rcpi:e.rcpi,x:0,y:11,color:zt(e.kind,e.rcpi,e.position)})}),Vt(e.rcpi)]}):null,e.connected&&(e.position===`too_far`||e.position===`too_close`)?(0,N.jsx)(O,{variant:`caption`,component:`div`,color:e.position===`too_far`?`warning.main`:`text.secondary`,children:r(`tr064_position_${e.position}`)}):null]}):null,c?(0,N.jsx)(E,{sx:{whiteSpace:`nowrap`},children:Lt(e)}):null,s?(0,N.jsx)(E,{sx:{fontFamily:`monospace`},children:e.mac}):null,s?(0,N.jsx)(E,{children:e.ip||``}):null,o?(0,N.jsx)(E,{sx:{...l,width:40},children:(0,N.jsx)(se,{size:`small`,title:r(`tr064_rename`),onClick:()=>o(e.uid),children:(0,N.jsx)(Oe,{fontSize:`small`})})}):null]},e.uid))})]})}function Yt(t){let{node:n,t:r,onClose:i,onRename:a}=t,[o,s]=e(n.name||``),[c,l]=e(!1),[u,d]=e(null),f=o.trim()&&o.trim()!==n.name,p=()=>{f&&!c&&(l(!0),d(null),a(n.mac,o.trim()).then(e=>{l(!1),e?d(e):i()}))};return(0,N.jsxs)(te,{open:!0,fullWidth:!0,maxWidth:`sm`,onClose:c?void 0:i,children:[(0,N.jsx)(ie,{children:r(`tr064_renameTitle`)}),(0,N.jsxs)(re,{children:[(0,N.jsx)(O,{variant:`body2`,color:`text.secondary`,sx:{mb:2},children:[n.mac,R(n,r),n.ip].filter(Boolean).join(` · `)}),(0,N.jsx)(de,{fullWidth:!0,autoFocus:!0,variant:`standard`,label:r(`tr064_newName`),value:o,disabled:c,error:!!u,slotProps:{htmlInput:{maxLength:jt}},onChange:e=>s(e.target.value),onKeyUp:e=>{e.key===`Enter`&&p()}}),(0,N.jsx)(b,{severity:`info`,sx:{mt:2},children:r(`tr064_renameHint`)}),u?(0,N.jsx)(b,{severity:`error`,sx:{mt:1},children:r(`tr064_renameFailed`,u)}):null]}),(0,N.jsxs)(ne,{children:[(0,N.jsx)(S,{variant:`contained`,disabled:c||!f,startIcon:c?(0,N.jsx)(C,{size:16}):(0,N.jsx)(Oe,{}),onClick:p,children:r(`tr064_rename`)}),(0,N.jsx)(S,{variant:`contained`,color:`inherit`,disabled:c,startIcon:(0,N.jsx)(Ce,{}),onClick:i,children:r(`tr064_cancel`)})]})]})}function Xt(r){let{data:a,loading:o,error:s,onRefresh:c,onRename:l,t:u,compact:d,height:f}=r,p=r.storageKey||`tr064.meshTopology`,m=ye(),h=i(()=>r.themeType&&r.themeType!==m.palette.mode?ge({palette:{mode:r.themeType}}):m,[m,r.themeType]),[g,_]=e(()=>Pt(p)),v=e=>{let t={...g,...e};_(t),Ft(p,t)},[y,te]=e(null),ne=y?((a==null?void 0:a.nodes)||[]).find(e=>e.uid===y):void 0,re=l&&a!=null&&a.canRename?e=>te(e):void 0,ie=t(null),[ae,ce]=e(0);n(()=>{let e=ie.current;if(!e||(ce(Math.floor(e.getBoundingClientRect().width)),typeof ResizeObserver>`u`))return;let t=new ResizeObserver(e=>{var t;let n=Math.floor(((t=e[0])==null?void 0:t.contentRect.width)||0);ce(e=>e===n?e:n)});return t.observe(e),()=>t.disconnect()},[]);let w=i(()=>a?ot(a,{onlyConfigured:g.onlyConfigured,showDisconnected:g.showDisconnected}):null,[a,g.onlyConfigured,g.showDisconnected]),T=Math.max(0,ae-2),E=i(()=>{if(!w||!T)return null;let e=[...w.roots];return w.unassigned.length&&e.push({clients:w.unassigned,children:[]}),pt(e,T,g.showVendor)},[w,T,g.showVendor]),D=!!d||ae>0&&ae<At,ue=f!=null&&f!==``,de={overflow:`auto`,minHeight:0,border:`1px solid ${h.palette.divider}`,borderRadius:1,...ue?{flex:`1 1 auto`}:{maxHeight:`75vh`}},he=(0,N.jsxs)(x,{sx:{display:`flex`,alignItems:`center`,flexWrap:`wrap`,columnGap:D?.5:1,rowGap:.5,mb:1,flex:`0 0 auto`},children:[D?(0,N.jsx)(se,{size:`small`,title:u(`tr064_refresh`),disabled:o,onClick:()=>c(),children:o?(0,N.jsx)(C,{size:18}):(0,N.jsx)(Le,{fontSize:`small`})}):(0,N.jsx)(S,{variant:`outlined`,size:`small`,startIcon:o?(0,N.jsx)(C,{size:16}):(0,N.jsx)(Le,{}),disabled:o,onClick:()=>c(),children:u(`tr064_refresh`)}),[{key:`onlyConfigured`,label:u(`tr064_onlyConfigured`)},{key:`showDisconnected`,label:u(`tr064_showDisconnected`)},{key:`showVendor`,label:u(`tr064_showVendor`)}].map(e=>(0,N.jsx)(oe,{sx:D?{mr:.5,ml:0}:void 0,control:(0,N.jsx)(ee,{size:`small`,sx:D?{p:.5}:void 0,checked:g[e.key],onChange:t=>v({[e.key]:t.target.checked})}),label:(0,N.jsx)(O,{variant:D?`body2`:`body1`,children:e.label})},e.key)),(0,N.jsxs)(me,{size:`small`,exclusive:!0,value:g.viewMode,onChange:(e,t)=>t&&v({viewMode:t}),children:[(0,N.jsx)(pe,{value:`graph`,title:u(`tr064_graph`),sx:D?{p:.5}:void 0,children:(0,N.jsx)(be,{fontSize:`small`})}),(0,N.jsx)(pe,{value:`table`,title:u(`tr064_table`),sx:D?{p:.5}:void 0,children:(0,N.jsx)(Ge,{fontSize:`small`})})]}),(0,N.jsx)(x,{sx:{flexGrow:1}}),(0,N.jsxs)(x,{sx:{display:`flex`,alignItems:`center`,flexWrap:`wrap`,columnGap:1.5,rowGap:.5},children:[(0,N.jsx)(Gt,{}),a!=null&&a.ts?(0,N.jsx)(O,{variant:`caption`,color:`text.secondary`,children:u(`tr064_updated`,new Date(a.ts).toLocaleTimeString())}):null]})]}),k;if(s&&(s===`not alive`||!a)){let e=It(s,u);k=(0,N.jsx)(b,{severity:e.severity,children:e.text})}else if(!a||!w)k=(0,N.jsxs)(x,{sx:{display:`flex`,alignItems:`center`,gap:1,p:2},children:[(0,N.jsx)(C,{size:20}),(0,N.jsx)(O,{children:u(`tr064_loading`)})]});else{let e=s?It(s,u):null;k=(0,N.jsxs)(N.Fragment,{children:[e?(0,N.jsx)(b,{severity:e.severity,sx:{mb:1,flex:`0 0 auto`},children:e.text}):null,!w.roots.length&&!w.unassigned.length?(0,N.jsx)(b,{severity:`info`,children:u(`tr064_noData`)}):g.viewMode===`table`?(0,N.jsx)(le,{sx:de,children:(0,N.jsx)(Jt,{tree:w,width:T,t:u,theme:h,showVendor:g.showVendor,onRename:re})}):(0,N.jsx)(x,{sx:{...de,backgroundColor:h.palette.background.default},children:E?(0,N.jsxs)(`svg`,{width:E.width,height:E.height,style:{display:`block`,fontFamily:h.typography.fontFamily},children:[E.edges.map((e,t)=>Kt(e,t,h,u)),E.cards.map(e=>qt(e,h,u,{showVendor:g.showVendor,onRename:re}))]}):null})]})}let _e=(0,N.jsxs)(x,{ref:ie,sx:{width:`100%`,minWidth:0,display:`flex`,flexDirection:`column`,...ue?{height:f}:{}},children:[he,k,ne&&l?(0,N.jsx)(Yt,{node:ne,t:u,onClose:()=>te(null),onRename:l}):null]});return h===m?_e:(0,N.jsx)(fe,{theme:h,children:_e})}var Zt={connection:`info.connection`,model:`states.boxModel`,firmware:`states.boxFirmware`,accessType:`states.wanAccessType`,linkStatus:`states.wanLinkStatus`,provider:`states.wanProvider`,externalIP:`states.externalIP`,receiveRate:`states.wanReceiveRate`,sendRate:`states.wanSendRate`,downstreamMax:`states.wanDownstreamMax`,upstreamMax:`states.wanUpstreamMax`,wlan:`states.wlan`,wlan24:`states.wlan24`,wlan50:`states.wlan50`,wlan52:`states.wlan52`,wlan60:`states.wlan60`,wlanGuest:`states.wlanGuest`,abNewMessages:`states.abNewMessages`,missedCalls:`calllists.missed.count`,ringing:`callmonitor.ringing`},Qt=Object.keys(Zt),$t=[{key:`wlan24`,label:`2.4`},{key:`wlan50`,label:`5`},{key:`wlan52`,label:`5 (2)`},{key:`wlan60`,label:`6`},{key:`wlanGuest`,label:``,guest:!0}],en=`tr-064.0`;function B(e){let t=String(e??``).trim().replace(/^system\.adapter\./,``);return/^\d+$/.test(t)?`tr-064.${t}`:/^[-\w]+\.\d+$/.test(t)?t:en}function V(e,t){let n=e[t];return n!=null&&n!==``}function H(e,t){let n=Number(e[t]);return Number.isFinite(n)?n:0}function U(e,t){return V(e,t)?String(e[t]):``}function W(e,t){let n=e[t];return n===!0||n===`true`||n===1||n===`1`}function tn(e,t,n){let r=e.toFixed(t);return n?r.replace(`.`,`,`):r}function nn(e,t,n){if(!Number.isFinite(e)||e<=0)return{value:`0`,unit:`Mbit/s`};let r,i;e<1e6?(r=e/1e3,i=`kbit/s`):e<1e9?(r=e/1e6,i=`Mbit/s`):(r=e/1e9,i=`Gbit/s`);let a=r<10?1:+(r<100&&i!==`kbit/s`);i===`Gbit/s`&&(a=r<10?2:1),n&&Math.abs(r-Math.round(r))<.05&&(a=0);let o=tn(r,a,t);return n&&a&&(o=o.replace(/([.,]\d*?)0+$/,`$1`).replace(/[.,]$/,``)),{value:o,unit:i}}function rn(e){let t=e.match(/^\d+\.(\d+)\.(\d+)/);return t?`FRITZ!OS ${Number(t[1])}.${t[2]}`:e}function an(e,t){return!t||t<=0||!e||e<=0?0:Math.min(100,Math.max(0,e/t*100))}var on=u==null?void 0:u.Box;function G(e,t){return(s==null?void 0:s[e])||function({sx:e}){return(0,N.jsx)(on,{component:`span`,sx:{lineHeight:1,display:`inline-flex`,...e},children:t})}}var sn=G(`RouterOutlined`,`⌂`),cn=G(`RingVolume`,`☎`),ln=G(`SouthRounded`,`↓`),un=G(`NorthRounded`,`↑`),dn=G(`Wifi`,`≋`),fn=G(`WifiOff`,`≋`),pn=G(`Voicemail`,`✉`),mn=G(`PhoneMissed`,`☏`),hn=G(`Public`,`◍`),gn=G(`Hub`,`⌘`),_n=G(`Close`,`✕`),vn=G(`ChevronRight`,`›`),yn=G(`Person`,`☺`),bn=G(`Login`,`→`),xn=G(`Logout`,`←`),Sn=G(`History`,`↺`),Cn=G(`Refresh`,`↻`),wn=G(`Smartphone`,`▯`),K=u==null?void 0:u.Box,q=u==null?void 0:u.Typography,Tn=u==null?void 0:u.Tooltip,En=u==null?void 0:u.Dialog,Dn=u==null?void 0:u.DialogTitle,On=u==null?void 0:u.DialogContent,kn=u==null?void 0:u.DialogActions,An=u==null?void 0:u.Button,jn=u==null?void 0:u.IconButton,J=o==null?void 0:o.I18n,Mn={online:`fritzdm_online`,noInternet:`fritzdm_noInternet`,connecting:`fritzdm_connecting`,unreachable:`fritzdm_unreachable`,unknown:``},Nn=[`Up`,`Down`,`Initializing`,`Unavailable`],Pn=[`Fiber`,`Cable`],Fn=`tr064.devices.meshTopology`;function In(e,...t){return J.t(e,...t)}var Ln=class e extends l{constructor(t){super(t),F(this,`subscriptions`,[]),F(this,`meshLoader`,null),F(this,`openMesh`,()=>{var e,t;this.state.meshOpen||((e=(t=this.props).onOpenWidgetDialog)==null||e.call(t,this.dialogId),this.setState({meshOpen:!0},()=>this.startMesh()))}),F(this,`closeMesh`,()=>{var e,t;this.stopMesh(),this.setState({meshOpen:!1}),(e=(t=this.props).onCloseWidgetDialog)==null||e.call(t)}),F(this,`onTileKeyDown`,e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),this.openMesh())}),F(this,`askReset`,e=>{e.stopPropagation(),this.setState({resetOpen:!0})}),F(this,`closeReset`,()=>{this.setState({resetOpen:!1})}),F(this,`resetMissed`,e=>{e.stopPropagation(),this.setState({resetOpen:!1}),this.props.stateContext.getSocket().setState(`${this.instance}.${Zt.missedCalls}`,0,!1).catch(()=>{})}),this.state={...this.state,values:{},meshOpen:t.openDialogId===e.dialogIdOf(t),mesh:{data:null,loading:!1,error:null},resetOpen:!1}}static getConfigSchema(){return{name:`fritzdm_widgetName`,schema:{type:`panel`,items:{size:{type:`select`,label:`wm_Size`,options:g,default:`2x1`,format:`radio`,horizontal:!0,noTranslation:!0},instance:{type:`instance`,adapter:`tr-064`,label:`fritzdm_instance`,default:`tr-064.0`,sm:12,md:6},name:{type:`text`,label:`fritzdm_name`,sm:12,md:6},showExternalIp:{type:`checkbox`,label:`fritzdm_showExternalIp`,default:!0,sm:12}}}}}static dialogIdOf(e){return`${e.widget.id}_mesh`}get dialogId(){return e.dialogIdOf(this.props)}get instance(){return B(this.props.settings.instance)}componentDidMount(){var e;(e=super.componentDidMount)==null||e.call(this),this.subscribe(),this.state.meshOpen&&this.startMesh()}componentDidUpdate(e,t,n){var r;if((r=super.componentDidUpdate)==null||r.call(this,e,t,n),B(e.settings.instance)!==this.instance&&(this.unsubscribe(),this.setState({values:{},mesh:{data:null,loading:!1,error:null},resetOpen:!1},()=>{this.subscribe(),this.state.meshOpen&&this.startMesh()})),e.openDialogId!==this.props.openDialogId){let t=this.props.openDialogId===this.dialogId;t&&!this.state.meshOpen?this.setState({meshOpen:!0},()=>this.startMesh()):!t&&e.openDialogId===this.dialogId&&this.state.meshOpen&&(this.stopMesh(),this.setState({meshOpen:!1}))}}componentWillUnmount(){var e;(e=super.componentWillUnmount)==null||e.call(this),this.unsubscribe(),this.stopMesh()}subscribe(){let e=this.props.stateContext;for(let t of Qt){let n=`${this.instance}.${Zt[t]}`,r=(e,n)=>this.onValue(t,n);e.getState(n,r),this.subscriptions.push({id:n,handler:r})}}unsubscribe(){let e=this.props.stateContext;for(let{id:t,handler:n}of this.subscriptions)e.removeState(t,n);this.subscriptions=[]}onValue(e,t){let n=t?t.val:null;this.setState(t=>t.values[e]===n?null:{values:{...t.values,[e]:n},indicators:e===`connection`&&t.indicators?{...t.indicators,connected:n===null?null:!!n}:t.indicators})}startMesh(){this.stopMesh();let e=new Tt({socket:this.props.stateContext.getSocket(),instanceId:this.instance,onChange:t=>{this.meshLoader===e&&this.setState({mesh:t})}});this.meshLoader=e,e.start()}stopMesh(){var e;(e=this.meshLoader)==null||e.stop(),this.meshLoader=null}isTileActive(){return W(this.state.values,`ringing`)}hasTileAction(){return!0}onTileClick(){this.openMesh()}renderTileIcon(){return this.renderIcon(`1em`)}get values(){return this.state.values}get displayName(){var e;return((e=this.props.settings)==null?void 0:e.name)||this.state.name||U(this.values,`model`)||`FRITZ!Box`}get floatComma(){return!!this.props.stateContext.isFloatComma}get status(){let e=this.values,t=e.connection;if(t===!1||t===`false`)return`unreachable`;let n=U(e,`linkStatus`);return n===`Up`?`online`:n===`Initializing`?`connecting`:n===`Down`||n===`Unavailable`?`noInternet`:W(e,`connection`)?`online`:`unknown`}statusColor(e){switch(this.status){case`online`:return e.palette.success.main;case`connecting`:return e.palette.warning.main;case`noInternet`:case`unreachable`:return e.palette.error.main;default:return e.palette.text.disabled}}get statusText(){let e=Mn[this.status];return e?J.t(e):`…`}get accessType(){let e=U(this.values,`accessType`);return Pn.includes(e)?J.t(`fritzdm_access_${e}`):e}get linkStatus(){let e=U(this.values,`linkStatus`);return Nn.includes(e)?J.t(`fritzdm_link_${e}`):e}get modelLine(){let e=U(this.values,`model`),t=U(this.values,`firmware`);return[e&&e!==this.displayName?e:``,t?rn(t):``].filter(Boolean).join(` · `)}accent(e){return this.getAccentColor()||e.palette.primary.main}rate(e){return this.status===`unreachable`||!V(this.values,e)?{value:`–`,unit:``}:nn(H(this.values,e)*8,this.floatComma)}rateText(e){let t=this.rate(e);return t.unit?`${t.value} ${t.unit}`:t.value}get hasRates(){return V(this.values,`receiveRate`)||V(this.values,`sendRate`)}get staleSx(){return this.status===`unreachable`?{opacity:.45}:{}}get showIp(){return this.props.settings.showExternalIp!==!1&&V(this.values,`externalIP`)}renderIcon(e){let t=W(this.values,`ringing`),n=this.status===`unreachable`;return(0,N.jsx)(K,{component:`span`,sx:r=>({display:`inline-flex`,flexShrink:0,fontSize:e,lineHeight:1,color:t?r.palette.warning.main:n?r.palette.text.disabled:this.accent(r),transition:`color 0.25s ease`,"& .MuiSvgIcon-root":{fontSize:`inherit`},...t?{animation:`fritzdmRing 1.2s ease-in-out infinite`,"@keyframes fritzdmRing":{"0%, 50%, 100%":{transform:`rotate(0deg)`},"10%, 30%":{transform:`rotate(-12deg)`},"20%, 40%":{transform:`rotate(12deg)`}}}:{}}),children:t?(0,N.jsx)(cn,{sx:{fontSize:`inherit`}}):(0,N.jsx)(sn,{sx:{fontSize:`inherit`}})})}renderStatus(e,t){let n=t&&this.status!==`unreachable`?this.accessType:``;return(0,N.jsxs)(K,{sx:{display:`flex`,alignItems:`center`,gap:`0.4em`,minWidth:0,fontSize:e,lineHeight:1.35},children:[(0,N.jsx)(K,{component:`span`,sx:e=>({width:`0.6em`,height:`0.6em`,flexShrink:0,borderRadius:`50%`,backgroundColor:this.statusColor(e),boxShadow:`0 0 0 0.18em ${p(this.statusColor(e),.2)}`})}),(0,N.jsxs)(K,{component:`span`,sx:{overflow:`hidden`,whiteSpace:`nowrap`,textOverflow:`ellipsis`,fontWeight:600,color:`text.secondary`},children:[(0,N.jsx)(K,{component:`span`,sx:e=>({color:this.status===`online`?`text.primary`:this.statusColor(e)}),children:this.statusText}),n?(0,N.jsx)(K,{component:`span`,children:` · ${n}`}):null]})]})}renderRateValue(e,t,n){let r=this.rate(e),i=e===`receiveRate`?ln:un;return(0,N.jsxs)(K,{component:`span`,sx:{display:`inline-flex`,alignItems:`baseline`,gap:`0.2em`,fontSize:t,lineHeight:1.15,whiteSpace:`nowrap`,fontVariantNumeric:`tabular-nums`,color:n!=null&&n.muted?`text.secondary`:`text.primary`},children:[(0,N.jsx)(i,{sx:{fontSize:`0.8em`,alignSelf:`center`,color:n!=null&&n.muted?`text.secondary`:`text.disabled`}}),(0,N.jsx)(K,{component:`span`,sx:{fontWeight:700},children:r.value}),(n==null?void 0:n.unit)===!1||!r.unit?null:(0,N.jsx)(K,{component:`span`,sx:{fontSize:`max(9px, 0.62em)`,fontWeight:500,color:`text.secondary`},children:r.unit})]})}renderUsageBar(e,t){let n=H(this.values,t),r=an(H(this.values,e)*8,n),i=n>0?nn(n,this.floatComma,!0):null;return(0,N.jsx)(K,{title:i?J.t(`fritzdm_maxRate`,`${i.value} ${i.unit}`):void 0,sx:{height:4,borderRadius:2,overflow:`hidden`,backgroundColor:`rgba(127,127,127,0.22)`},children:(0,N.jsx)(K,{sx:t=>({width:`${n>0?Math.max(r,r>0?2:0):0}%`,height:`100%`,borderRadius:`inherit`,backgroundColor:e===`receiveRate`?this.accent(t):p(this.accent(t),.6),transition:`width 0.6s ease`})})})}renderRates(e,t){if(!this.hasRates)return null;let n=(n,r,i)=>{let a=H(this.values,r),o=a>0?nn(a,this.floatComma,!0):null;return(0,N.jsxs)(K,{sx:{flex:`1 1 0`,minWidth:0,display:`flex`,flexDirection:`column`,gap:`4px`},children:[t?(0,N.jsx)(q,{variant:`caption`,noWrap:!0,sx:{color:`text.secondary`,lineHeight:1.2,fontSize:`0.7rem`},children:i}):null,this.renderRateValue(n,e),a>0?this.renderUsageBar(n,r):null,t&&o?(0,N.jsx)(q,{variant:`caption`,noWrap:!0,sx:{color:`text.secondary`,lineHeight:1.2,fontSize:`0.65rem`},children:J.t(`fritzdm_maxRate`,`${o.value} ${o.unit}`)}):null]})};return(0,N.jsxs)(K,{sx:{display:`flex`,gap:`max(12px, 4cqi)`,minWidth:0,...this.staleSx},children:[n(`receiveRate`,`downstreamMax`,J.t(`fritzdm_download`)),n(`sendRate`,`upstreamMax`,J.t(`fritzdm_upload`))]})}static renderPill(e,t,n){let r=(0,N.jsx)(K,{component:`span`,role:n.onClick?`button`:void 0,tabIndex:n.onClick?0:void 0,onClick:n.onClick,onKeyDown:n.onClick?e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),n.onClick(e))}:void 0,sx:e=>{var t;let r=(t=n.color)==null?void 0:t.call(n,e);return{display:`inline-flex`,alignItems:`center`,gap:`3px`,flexShrink:0,height:`1.7em`,px:`0.55em`,borderRadius:`0.85em`,fontSize:`inherit`,fontWeight:n.strong?700:600,lineHeight:1,whiteSpace:`nowrap`,color:n.off?e.palette.text.disabled:r||e.palette.text.secondary,backgroundColor:n.off?`transparent`:r?p(r,e.palette.mode===`dark`?.2:.12):p(e.palette.text.primary,.07),border:n.off?`1px dashed ${p(e.palette.text.primary,.22)}`:`1px solid transparent`,textDecoration:n.off?`line-through`:`none`,"& .MuiSvgIcon-root":{fontSize:`1.15em`},...n.onClick?{cursor:`pointer`,outline:`none`,"&:hover":{filter:`brightness(1.15)`},"&:focus-visible":{boxShadow:`0 0 0 2px ${p(e.palette.text.primary,.4)}`}}:{}}},children:t},e);return n.title?(0,N.jsx)(Tn,{title:n.title,slotProps:{popper:{sx:{pointerEvents:`none`}}},children:r},e):r}renderWlan(t,n){let r=this.values,i=$t.filter(e=>V(r,e.key));if(!i.length&&!V(r,`wlan`))return null;let a=J.t(`fritzdm_on`),o=J.t(`fritzdm_off`),s=i.length?i.some(e=>W(r,e.key)):W(r,`wlan`),c=e=>e.palette.success.main,l=i.length?i.map(t=>{let n=W(r,t.key),i=t.guest?J.t(`fritzdm_guest`):this.floatComma?t.label.replace(`.`,`,`):t.label,s=t.guest?J.t(`fritzdm_guestWlan`):`${i} GHz`;return e.renderPill(t.key,i,{color:n?c:void 0,off:!n,title:`${s}: ${n?a:o}`})}):[e.renderPill(`wlan`,`${J.t(`fritzdm_wlan`)}`,{color:s?c:void 0,off:!s,title:`${J.t(`fritzdm_wlan`)}: ${s?a:o}`})];return(0,N.jsxs)(K,{sx:{display:`flex`,alignItems:`center`,gap:`4px`,fontSize:t,minWidth:0,flexWrap:`nowrap`,overflow:`hidden`,...this.staleSx},children:[(0,N.jsx)(K,{component:`span`,title:J.t(`fritzdm_wlan`),sx:{display:`inline-flex`,color:s?`text.secondary`:`text.disabled`,mr:`1px`},children:s?(0,N.jsx)(dn,{sx:{fontSize:`1.35em`}}):(0,N.jsx)(fn,{sx:{fontSize:`1.35em`}})}),n?(0,N.jsx)(K,{component:`span`,sx:{color:`text.secondary`,fontWeight:600,mr:`2px`},children:J.t(`fritzdm_wlan`)}):null,l]})}renderPhone(t,n,r){let i=this.values,a=[],o=e=>e.palette.warning.main,s=e=>e.palette.error.main,c=(e,t)=>r===`auto`?(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)(K,{component:`span`,sx:{"@container (min-width: 400px)":{display:`none`}},children:e}),(0,N.jsx)(K,{component:`span`,sx:{display:`none`,"@container (min-width: 400px)":{display:`inline`}},children:t})]}):(0,N.jsx)(N.Fragment,{children:e});if(W(i,`ringing`)&&a.push(e.renderPill(`ringing`,(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)(cn,{}),r===`auto`?J.t(`fritzdm_ringing`):null]}),{color:o,title:J.t(`fritzdm_ringing`),strong:!0})),V(i,`abNewMessages`)){let t=H(i,`abNewMessages`);if(t||n){let n=t===1?J.t(`fritzdm_oneNewMessage`):t?J.t(`fritzdm_newMessages`,t):J.t(`fritzdm_noNewMessages`);a.push(e.renderPill(`ab`,(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)(pn,{}),c(t,n)]}),{color:t?o:void 0,title:n}))}}if(V(i,`missedCalls`)){let t=H(i,`missedCalls`);if(t||n){let n=t===1?J.t(`fritzdm_oneMissedCall`):t?J.t(`fritzdm_missedCalls`,t):J.t(`fritzdm_noMissedCalls`);a.push(e.renderPill(`missed`,(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)(mn,{}),c(t,n)]}),{color:t?s:void 0,title:t?`${n} - ${J.t(`fritzdm_resetHint`)}`:n,onClick:t?this.askReset:void 0}))}}return a.length?(0,N.jsx)(K,{sx:{display:`flex`,alignItems:`center`,gap:`4px`,fontSize:t,minWidth:0,flexWrap:`nowrap`,overflow:`hidden`,...this.staleSx},children:a}):null}renderIp(e){return this.showIp?(0,N.jsxs)(K,{title:J.t(`fritzdm_externalIp`),sx:{display:`inline-flex`,alignItems:`center`,gap:`0.3em`,minWidth:0,fontSize:e,color:`text.secondary`,...this.staleSx},children:[(0,N.jsx)(hn,{sx:{fontSize:`1.2em`,flexShrink:0}}),(0,N.jsx)(K,{component:`span`,sx:{overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`,fontVariantNumeric:`tabular-nums`,letterSpacing:`0.01em`},children:U(this.values,`externalIP`)})]}):null}renderName(e,t){return(0,N.jsx)(q,{ref:this.nameRef,variant:`body2`,sx:n=>({fontWeight:600,lineHeight:1.3,overflow:`hidden`,whiteSpace:`nowrap`,fontSize:e,...c(n)?{textTransform:`uppercase`,letterSpacing:`0.08em`,fontSize:t}:{}}),children:this.displayName})}renderTileIndicators(){return(0,N.jsx)(`div`,{onClick:m,onKeyDown:m,style:{display:`contents`},children:this.renderIndicators(this.renderSettingsButton())})}renderFrame(e,t,n){let r=this.isTileActive();return(0,N.jsxs)(K,{id:String(this.props.widget.id),className:this.getWidgetClass(),sx:t=>y(t,e),children:[e===`2x1`?(0,N.jsx)(K,{sx:{width:`calc(50% - 6px)`,aspectRatio:`1`}}):null,(0,N.jsxs)(K,{role:`button`,tabIndex:0,"aria-label":`${this.displayName} - ${J.t(`fritzdm_showMesh`)}`,onClick:this.openMesh,onKeyDown:this.onTileKeyDown,sx:n=>({boxSizing:`border-box`,position:e===`2x1`?`absolute`:`relative`,...e===`2x1`?{inset:0}:{},width:`100%`,overflow:`hidden`,userSelect:`none`,cursor:`pointer`,textAlign:`left`,color:`text.primary`,outline:`none`,...d(n,r,this.getAccentColor(),!0,this.getInactiveColor()),"&:focus-visible":{boxShadow:`0 0 0 2px ${this.accent(n)} inset`},...t(n)}),children:[n,this.renderTileIndicators()]}),this.state.meshOpen||this.state.resetOpen?(0,N.jsxs)(`span`,{style:{display:`contents`},onClick:m,onPointerDown:m,onMouseDown:m,onTouchStart:m,onKeyDown:m,children:[this.state.meshOpen?this.renderMeshDialog():null,this.state.resetOpen?this.renderResetDialog():null]}):null]})}renderResetDialog(){let e=H(this.values,`missedCalls`);return(0,N.jsxs)(En,{open:!0,onClose:this.closeReset,maxWidth:`xs`,fullWidth:!0,"aria-labelledby":`${this.dialogId}-reset-title`,children:[(0,N.jsxs)(Dn,{id:`${this.dialogId}-reset-title`,component:`div`,sx:{display:`flex`,alignItems:`center`,gap:1.5,py:1.5},children:[(0,N.jsx)(mn,{sx:e=>({color:e.palette.error.main,flexShrink:0})}),(0,N.jsx)(q,{component:`h2`,sx:{fontSize:`1.05rem`,fontWeight:600,lineHeight:1.3},children:J.t(`fritzdm_resetMissedTitle`)})]}),(0,N.jsx)(On,{children:(0,N.jsx)(q,{variant:`body2`,children:J.t(`fritzdm_resetMissedText`,e)})}),(0,N.jsxs)(kn,{children:[(0,N.jsx)(An,{variant:`contained`,color:`primary`,autoFocus:!0,onClick:this.resetMissed,children:J.t(`fritzdm_reset`)}),(0,N.jsx)(An,{variant:`contained`,color:`inherit`,startIcon:(0,N.jsx)(_n,{}),onClick:this.closeReset,children:J.t(`fritzdm_cancel`)})]})]})}renderMeshDialog(){let{data:e,loading:t,error:n}=this.state.mesh;return(0,N.jsxs)(En,{open:!0,onClose:this.closeMesh,maxWidth:!1,"aria-labelledby":`${this.dialogId}-title`,slotProps:{paper:{sx:{width:`min(1200px, calc(100vw - 32px))`,height:n&&!e?`auto`:`min(880px, calc(100dvh - 32px))`,maxWidth:`none`,maxHeight:`none`,m:2,display:`flex`,flexDirection:`column`,"@media (max-width: 599.95px)":{width:`100%`,height:`100%`,m:0,borderRadius:0}}}},children:[(0,N.jsxs)(Dn,{id:`${this.dialogId}-title`,component:`div`,sx:{display:`flex`,alignItems:`center`,gap:1.5,pr:1,py:1.5},children:[(0,N.jsx)(gn,{sx:e=>({color:this.accent(e),fontSize:28,flexShrink:0})}),(0,N.jsxs)(K,{sx:{flex:1,minWidth:0},children:[(0,N.jsx)(q,{component:`h2`,noWrap:!0,sx:{fontSize:`1.05rem`,fontWeight:600,lineHeight:1.3},children:J.t(`fritzdm_meshTitle`)}),(0,N.jsx)(q,{component:`div`,variant:`caption`,noWrap:!0,sx:{color:`text.secondary`,display:`block`},children:[this.displayName,this.instance].join(` · `)})]}),(0,N.jsx)(jn,{onClick:this.closeMesh,title:J.t(`fritzdm_close`),"aria-label":J.t(`fritzdm_close`),children:(0,N.jsx)(_n,{})})]}),(0,N.jsx)(On,{sx:{flex:`1 1 auto`,minHeight:0,display:`flex`,flexDirection:`column`,pt:0,px:{xs:1.5,sm:3},pb:{xs:1.5,sm:2.5}},children:(0,N.jsx)(Xt,{data:e,loading:t,error:n,onRefresh:()=>{var e;(e=this.meshLoader)==null||e.refresh()},onRename:async(e,t)=>this.meshLoader?this.meshLoader.rename(e,t):`not alive`,t:In,height:`100%`,storageKey:Fn})})]})}renderCompact(){let e=e=>c(e)?`max(12px, 8cqi)`:`max(14px, 9cqi)`;return this.renderFrame(`1x1`,t=>({display:`flex`,flexDirection:`column`,justifyContent:`space-between`,aspectRatio:`1`,padding:e(t)}),(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)(K,{sx:t=>({display:`flex`,alignItems:`flex-start`,minHeight:0,mt:v(e(t))}),children:this.renderIcon(`max(34px, 25cqi)`)}),(0,N.jsxs)(K,{sx:{minWidth:0},children:[this.hasRates?this.renderRateValue(`receiveRate`,`max(1rem, 11.5cqi)`,{muted:this.status!==`online`}):null,this.renderName(`max(0.8rem, 8.5cqi)`,`max(0.68rem, 6.8cqi)`),this.renderStatus(`max(0.66rem, 6.6cqi)`,!0)]})]}))}renderWide(){return this.renderFrame(`2x0.5`,e=>({display:`flex`,alignItems:`center`,gap:`max(10px, 3cqi)`,height:80,padding:c(e)?`8px 12px`:`8px 14px`}),(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)(K,{sx:{alignSelf:`flex-end`,display:`flex`},children:this.renderIcon(`34px`)}),(0,N.jsxs)(K,{sx:{flex:1,minWidth:0,display:`flex`,flexDirection:`column`,gap:`3px`},children:[(0,N.jsx)(K,{sx:{pr:`26px`,minWidth:0},children:this.renderName(`0.85rem`,`0.72rem`)}),(0,N.jsxs)(K,{sx:{display:`flex`,alignItems:`center`,gap:1,minWidth:0},children:[(0,N.jsx)(K,{sx:{flex:`1 1 auto`,minWidth:0},children:this.renderStatus(`0.72rem`,!0)}),this.hasRates?(0,N.jsxs)(K,{title:`${J.t(`fritzdm_download`)}: ${this.rateText(`receiveRate`)}, ${J.t(`fritzdm_upload`)}: ${this.rateText(`sendRate`)}`,sx:{display:`flex`,gap:`8px`,flexShrink:0,...this.staleSx},children:[this.renderRateValue(`receiveRate`,`0.8rem`),this.renderRateValue(`sendRate`,`0.8rem`,{unit:!1})]}):null]}),(0,N.jsxs)(K,{sx:{display:`flex`,alignItems:`center`,gap:1,minWidth:0,overflow:`hidden`,height:18},children:[this.renderWlan(`0.66rem`,!1),(0,N.jsx)(K,{sx:{flex:`1 1 auto`,minWidth:0,display:`flex`,"@container (max-width: 340px)":{display:`none`}},children:this.renderIp(`0.68rem`)}),(0,N.jsx)(K,{sx:{ml:`auto`,flexShrink:0},children:this.renderPhone(`0.66rem`,!1,`count`)})]})]})]}))}renderWideTall(){let e=e=>c(e)?`max(12px, 3.5cqi)`:`max(14px, 4cqi)`;return this.renderFrame(`2x1`,t=>({display:`flex`,flexDirection:`column`,justifyContent:`space-between`,gap:`6px`,height:`100%`,padding:e(t)}),(0,N.jsxs)(N.Fragment,{children:[(0,N.jsxs)(K,{sx:t=>({display:`flex`,alignItems:`center`,gap:`max(10px, 3cqi)`,minWidth:0,mt:v(e(t))}),children:[this.renderIcon(`max(30px, 9cqi)`),(0,N.jsxs)(K,{sx:{flex:1,minWidth:0},children:[(0,N.jsx)(K,{sx:{pr:`26px`,minWidth:0},children:this.renderName(`max(0.875rem, 4.4cqi)`,`max(0.72rem, 3.5cqi)`)}),(0,N.jsxs)(K,{sx:{display:`flex`,alignItems:`center`,gap:1,minWidth:0},children:[(0,N.jsx)(K,{sx:{flex:`0 0 auto`,maxWidth:`100%`,minWidth:0},children:this.renderStatus(`max(0.7rem, 3.3cqi)`,!0)}),(0,N.jsx)(K,{sx:{flex:`0 1 auto`,minWidth:0,display:`flex`,ml:`auto`},children:this.renderIp(`max(0.68rem, 3.2cqi)`)})]})]})]}),this.renderRates(`max(0.95rem, 5cqi)`,!1),(0,N.jsxs)(K,{sx:{display:`flex`,alignItems:`center`,gap:`8px`,minWidth:0},children:[(0,N.jsx)(K,{sx:{flex:`1 1 auto`,minWidth:0,display:`flex`},children:this.renderWlan(`max(0.66rem, 3cqi)`,!1)}),(0,N.jsx)(K,{sx:{flexShrink:0},children:this.renderPhone(`max(0.66rem, 3cqi)`,!1,`count`)})]})]}))}renderHuge(){let e=this.modelLine,t=this.status,n=[t===`unreachable`?``:this.accessType,t===`unreachable`?``:this.linkStatus,t===`unreachable`?``:U(this.values,`provider`)].filter(Boolean).join(` · `),r=e=>(0,N.jsx)(q,{variant:`caption`,noWrap:!0,sx:{color:`text.secondary`,fontSize:`max(0.68rem, 2.6cqi)`,lineHeight:1.2,width:`28%`,flexShrink:0},children:e}),i=this.renderIp(`max(0.75rem, 2.9cqi)`),a=this.renderWlan(`max(0.68rem, 2.7cqi)`,!1),o=this.renderPhone(`max(0.68rem, 2.7cqi)`,!0,`auto`),s=(e,t,n)=>n?(0,N.jsxs)(K,{sx:{display:`flex`,alignItems:`center`,gap:1,minWidth:0,minHeight:`1.6em`},children:[r(t),(0,N.jsx)(K,{sx:{flex:1,minWidth:0,display:`flex`},children:n})]},e):null,l=e=>c(e)?`max(14px, 4.5cqi)`:`max(16px, 5cqi)`;return this.renderFrame(`2x2`,e=>({display:`flex`,flexDirection:`column`,gap:`max(8px, 2.8cqi)`,aspectRatio:`1`,padding:l(e)}),(0,N.jsxs)(N.Fragment,{children:[(0,N.jsxs)(K,{sx:e=>({display:`flex`,alignItems:`center`,gap:`max(10px, 3cqi)`,minWidth:0,pr:`26px`,mt:v(l(e))}),children:[this.renderIcon(`max(36px, 11cqi)`),(0,N.jsxs)(K,{sx:{flex:1,minWidth:0},children:[this.renderName(`max(0.95rem, 5cqi)`,`max(0.78rem, 3.8cqi)`),e?(0,N.jsx)(q,{variant:`caption`,noWrap:!0,component:`div`,sx:{color:`text.secondary`,lineHeight:1.3,fontSize:`max(0.7rem, 3cqi)`},children:e}):null]})]}),(0,N.jsxs)(K,{sx:{display:`flex`,alignItems:`center`,gap:1,minWidth:0},children:[(0,N.jsx)(K,{sx:{flexShrink:0},children:this.renderStatus(`max(0.78rem, 3.3cqi)`,!1)}),n?(0,N.jsx)(q,{variant:`caption`,noWrap:!0,sx:{color:`text.secondary`,fontSize:`max(0.7rem, 2.9cqi)`,minWidth:0},children:n}):null]}),this.renderRates(`max(1.05rem, 5.6cqi)`,!0),(0,N.jsxs)(K,{sx:{display:`flex`,flexDirection:`column`,gap:`max(4px, 1.4cqi)`,minWidth:0},children:[s(`ip`,J.t(`fritzdm_externalIp`),i),s(`wlan`,J.t(`fritzdm_wlan`),a),s(`phone`,J.t(`fritzdm_phone`),o)]}),(0,N.jsxs)(K,{sx:e=>({mt:`auto`,pt:`max(6px, 1.8cqi)`,borderTop:`1px solid ${p(e.palette.text.primary,.1)}`,display:`flex`,alignItems:`center`,gap:.75,color:`text.secondary`,fontSize:`max(0.72rem, 2.9cqi)`,fontWeight:600,"& .MuiSvgIcon-root":{fontSize:`1.3em`}}),children:[(0,N.jsx)(gn,{}),(0,N.jsx)(K,{component:`span`,sx:{flex:1,minWidth:0,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},children:J.t(`tr064_meshTopology`)}),(0,N.jsx)(vn,{})]})]}))}},Y={present:`present`,lastArrival:`lastArrival`,lastDeparture:`lastDeparture`,presentSince:`presentSince`,absentSince:`absentSince`,presentToday:`presentToday`,absentToday:`absentToday`,devices:`devices`,history:`history`},Rn=/^(history|sql|influxdb)\.\d+$/;function zn(e){if(typeof e==`string`)return e;if(e&&typeof e==`object`){let t=e;return t.en||Object.values(t)[0]||``}return``}async function Bn(e,t){let n=`${t}.presence.persons.`;try{let t=await e.getObjectViewSystem(`channel`,n,`${n}香`)||{};return Object.keys(t).filter(e=>e.length>n.length&&!e.substring(n.length).includes(`.`)).map(e=>{var r;let i=t[e],a=(i==null?void 0:i.native)||{};return{id:e,name:a.person||zn(i==null||(r=i.common)==null?void 0:r.name)||e.substring(n.length),group:a.group||``}}).sort((e,t)=>e.name.localeCompare(t.name))}catch(e){return console.warn(`Cannot read the persons of ${t}: ${String(e)}`),[]}}function Vn(e,t){let n=(t||``).trim();if(!n)return;let r=n.toLowerCase();return e.find(e=>e.name===n)||e.find(e=>e.name.toLowerCase()===r)}function Hn(e){if(typeof e!=`string`||!e)return[];try{let t=JSON.parse(e);return Array.isArray(t)?t.filter(e=>e&&typeof e.ts==`number`).map(e=>({ts:e.ts,present:!!e.present})).sort((e,t)=>t.ts-e.ts):[]}catch{return[]}}function Un(e){var t;let n=e==null||(t=e.common)==null?void 0:t.custom;if(n)return Object.keys(n).find(e=>{var t;return Rn.test(e)&&((t=n[e])==null?void 0:t.enabled)})}async function Wn(e,t,n={}){let r=Math.max(1,n.count||20),i=Math.max(1,n.days||7),a=`${t}.${Y.present}`;try{let t=e.getHistory?Un(await e.getObject(a)):void 0;if(t&&e.getHistory){let n=Date.now(),o=await e.getHistory(a,{instance:t,start:n-i*24*36e5,end:n,aggregate:`none`,ack:!0,from:!1,q:!1,addId:!1,returnNewestEntries:!0,count:r*4}),s=Array.isArray(o)?o:[],c=[];if(s.filter(e=>e&&typeof e.ts==`number`&&e.val!==null&&e.val!==void 0).sort((e,t)=>e.ts-t.ts).forEach(e=>{let t=e.val===!0||e.val===`true`||e.val===1||e.val===`1`;(!c.length||c[c.length-1].present!==t)&&c.push({ts:e.ts,present:t})}),c.length)return{events:c.reverse().slice(0,r),source:`history`,instance:t}}}catch(e){console.warn(`Cannot read the history of ${a}: ${String(e)}`)}try{let n=await e.getState(`${t}.${Y.history}`),i=Hn(n==null?void 0:n.val).slice(0,r);return{events:i,source:i.length?`adapter`:`none`}}catch{return{events:[],source:`none`}}}function Gn(e){return e===`zh-cn`?`zh-CN`:e||`en`}function Kn(e,t){let n=Math.max(0,Math.floor(e/6e4)),r=[[Math.floor(n/1440),`day`],[Math.floor(n%1440/60),`hour`],[n%60,`minute`]],i=r.findIndex(([e])=>e>0);return(i===-1?[r[2]]:r.slice(i,i+2).filter(([e])=>e>0)).map(([e,n])=>{try{return new Intl.NumberFormat(Gn(t),{style:`unit`,unit:n,unitDisplay:n===`day`?`long`:`short`}).format(e)}catch{return`${e} ${n===`day`?`d`:n===`hour`?`h`:`min`}`}}).join(` `)}function qn(e,t){if(!e)return`—`;let n=new Date(e),r=new Date,i=Gn(t),a=n.toLocaleTimeString(i,{hour:`2-digit`,minute:`2-digit`}),o=new Date(r.getFullYear(),r.getMonth(),r.getDate()).getTime();if(e>=o)return a;if(e>=o-864e5)try{return`${new Intl.RelativeTimeFormat(i,{numeric:`auto`}).format(-1,`day`)} ${a}`}catch{}let s=n.getFullYear()===r.getFullYear();return`${n.toLocaleDateString(i,{day:`2-digit`,month:`2-digit`,...s?{}:{year:`numeric`}})} ${a}`}var X=u==null?void 0:u.Box,Z=u==null?void 0:u.Typography,Jn=u==null?void 0:u.Dialog,Yn=u==null?void 0:u.DialogTitle,Xn=u==null?void 0:u.DialogContent,Zn=u==null?void 0:u.IconButton,Qn=u==null?void 0:u.CircularProgress,Q=o==null?void 0:o.I18n,$n=o==null?void 0:o.Icon,er=[Y.present,Y.lastArrival,Y.lastDeparture,Y.presentToday,Y.absentToday,Y.devices,Y.history],tr=50,nr=14,rr=4,ir=3e4,ar=6e4,or={events:[],source:`none`,loading:!1};function sr(e){return e===!0||e===`true`||e===1||e===`1`}function $(e){let t=Number(e);return Number.isFinite(t)?t:0}function cr(e){let t=e.replace(/[^\p{L}\p{N}\s-]/gu,``).split(/[\s-]+/).filter(Boolean);return t.length?((Array.from(t[0])[0]||``)+(t.length>1&&Array.from(t[t.length-1])[0]||``)).toUpperCase():``}function lr(e){return e===`zh-cn`?`zh-CN`:e||`en`}function ur(e,t){let n=lr(t),r=new Date(e),i=new Date().setHours(0,0,0,0),a=new Date(e).setHours(0,0,0,0),o=Math.round((i-a)/864e5);if(o===0||o===1)try{let e=new Intl.RelativeTimeFormat(n,{numeric:`auto`}).format(-o,`day`);return e.charAt(0).toLocaleUpperCase(n)+e.slice(1)}catch{}return r.toLocaleDateString(n,{weekday:`long`,day:`2-digit`,month:`2-digit`,...r.getFullYear()===new Date().getFullYear()?{}:{year:`numeric`}})}var dr={FritzBoxComponent:Ln,PersonComponent:class e extends l{constructor(t){super(t),F(this,`subscriptions`,[]),F(this,`connectionSubscription`,null),F(this,`lookupRun`,0),F(this,`historyRun`,0),F(this,`ticker`,null),F(this,`lastLookup`,0),F(this,`openHistory`,()=>{var e,t;!this.state.historyOpen&&this.canOpenHistory&&((e=(t=this.props).onOpenWidgetDialog)==null||e.call(t,this.dialogId),this.setState({historyOpen:!0},()=>this.loadHistory()))}),F(this,`closeHistory`,()=>{var e,t;this.historyRun++,this.setState({historyOpen:!1}),(e=(t=this.props).onCloseWidgetDialog)==null||e.call(t)}),F(this,`onTileKeyDown`,e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),this.openHistory())}),this.state={...this.state,person:null,lookup:`loading`,values:{},connected:null,historyOpen:t.openDialogId===e.dialogIdOf(t),history:or,now:Date.now()}}static getConfigSchema(){return{name:`fritzdm_personWidgetName`,schema:{type:`panel`,items:{size:{type:`select`,label:`wm_Size`,options:g,default:`1x1`,format:`radio`,horizontal:!0,noTranslation:!0},colorActive:{type:`color`,label:`fritzdm_colorPresent`,sm:6},color:{type:`color`,label:`fritzdm_colorAbsent`,sm:6},instance:{type:`instance`,adapter:`tr-064`,label:`fritzdm_instance`,default:`tr-064.0`,sm:12,md:6},person:{type:`autocompleteSendTo`,label:`fritzdm_person`,help:`fritzdm_personHelp`,command:`personList`,data:{},instance:"${data.instance}",alsoDependsOn:[`instance`],freeSolo:!0,sm:12,md:6},_appearance:{type:`header`,text:`fritzdm_appearance`,size:5,newLine:!0,sm:12},name:{type:`text`,label:`fritzdm_nameOverride`,help:`fritzdm_nameOverrideHelp`,sm:12,md:6},showName:{type:`checkbox`,label:`fritzdm_showName`,default:!0,sm:12,md:6},photo:{type:`image`,label:`fritzdm_photo`,help:`fritzdm_photoHelp`,base64:!0,crop:!0,maxSize:204800,accept:{"image/*":[]},newLine:!0,sm:12},iconActive:{type:`component`,subType:`iconSelect`,label:`fritzdm_iconPresent`,hidden:`!!data.photo`,sm:6},icon:{type:`component`,subType:`iconSelect`,label:`fritzdm_iconAbsent`,hidden:`!!data.photo`,sm:6},textActive:{type:`text`,label:`fritzdm_textPresent`,placeholder:`fritzdm_present`,sm:6},text:{type:`text`,label:`fritzdm_textAbsent`,placeholder:`fritzdm_absent`,sm:6},dimAbsent:{type:`checkbox`,label:`fritzdm_dimAbsent`,default:!0,sm:12},_display:{type:`header`,text:`fritzdm_display`,size:5,newLine:!0,sm:12},showSince:{type:`checkbox`,label:`fritzdm_showSince`,default:!0,sm:12},showLastChange:{type:`checkbox`,label:`fritzdm_showLastChange`,default:!0,sm:12},showHistory:{type:`checkbox`,label:`fritzdm_showHistory`,default:!0,sm:12}}}}}static dialogIdOf(e){return`${e.widget.id}_history`}get dialogId(){return e.dialogIdOf(this.props)}get instance(){return B(this.props.settings.instance)}get personName(){return(this.props.settings.person||``).trim()}get socket(){return this.props.stateContext.getSocket()}get lang(){return this.props.stateContext.language||Q.getLanguage()||`en`}componentDidMount(){var e;(e=super.componentDidMount)==null||e.call(this),this.subscribeConnection(),this.lookup(),this.ticker=setInterval(()=>{this.setState({now:Date.now()}),this.state.lookup===`notFound`&&Date.now()-this.lastLookup>=ar&&this.lookup()},ir)}componentDidUpdate(e,t,n){var r;(r=super.componentDidUpdate)==null||r.call(this,e,t,n);let i=B(e.settings.instance)!==this.instance;if(i&&(this.unsubscribeConnection(),this.subscribeConnection()),(i||(e.settings.person||``).trim()!==this.personName)&&this.lookup(),e.openDialogId!==this.props.openDialogId){let t=this.props.openDialogId===this.dialogId;t&&!this.state.historyOpen?this.setState({historyOpen:!0},()=>this.loadHistory()):!t&&e.openDialogId===this.dialogId&&this.state.historyOpen&&this.setState({historyOpen:!1})}this.state.historyOpen&&t.values.history!==void 0&&t.values.history!==this.state.values.history&&this.loadHistory(!0)}componentWillUnmount(){var e;(e=super.componentWillUnmount)==null||e.call(this),this.lookupRun++,this.historyRun++,this.unsubscribePerson(),this.unsubscribeConnection(),this.ticker&&=(clearInterval(this.ticker),null)}lookup(){let e=++this.lookupRun;this.lastLookup=Date.now(),this.unsubscribePerson();let t=this.personName;t?(this.state.lookup!==`notFound`&&this.setState({lookup:`loading`}),Bn(this.socket,this.instance).then(n=>{if(e!==this.lookupRun)return;let r=Vn(n,t)||null;this.setState({person:r,lookup:r?`found`:`notFound`,values:{},history:or},()=>{r&&(this.subscribePerson(r),this.state.historyOpen&&this.loadHistory())})})):this.setState({person:null,lookup:`none`,values:{},history:or})}subscribePerson(e){let t=this.props.stateContext;for(let n of er){let r=`${e.id}.${n}`,i=(e,t)=>this.onValue(n,t);t.getState(r,i),this.subscriptions.push({id:r,handler:i})}}unsubscribePerson(){let e=this.props.stateContext;for(let{id:t,handler:n}of this.subscriptions)e.removeState(t,n);this.subscriptions=[]}subscribeConnection(){let e=`${this.instance}.info.connection`,t=(e,t)=>{let n=t?t.val:null,r=n==null?null:sr(n);this.setState(e=>e.connected===r?null:{connected:r,indicators:e.indicators?{...e.indicators,connected:r}:e.indicators})};this.props.stateContext.getState(e,t),this.connectionSubscription={id:e,handler:t}}unsubscribeConnection(){this.connectionSubscription&&=(this.props.stateContext.removeState(this.connectionSubscription.id,this.connectionSubscription.handler),null)}onValue(e,t){let n=t?t.val:null;this.setState(t=>t.values[e]===n?null:{values:{...t.values,[e]:n}})}loadHistory(e){let t=this.state.person,n=++this.historyRun;t?(e||this.setState(e=>({history:{...e.history,loading:!0}})),Wn(this.socket,t.id,{count:tr,days:nr}).then(e=>{n===this.historyRun&&this.setState({history:{...e,loading:!1}})})):this.setState({history:or})}get canOpenHistory(){return this.props.settings.showHistory!==!1&&!!this.state.person}isTileActive(){return this.present===!0}hasTileAction(){return this.canOpenHistory}onTileClick(){this.openHistory()}renderTileIcon(){return this.renderAvatar(`1em`)}get values(){return this.state.values}get present(){let e=this.values.present;return this.state.lookup!==`found`||e==null?null:sr(e)}get displayName(){var e;return this.props.settings.name||((e=this.state.person)==null?void 0:e.name)||this.personName||Q.t(`fritzdm_personWidgetName`)}get statusText(){switch(this.state.lookup){case`none`:return Q.t(`fritzdm_noPerson`);case`notFound`:return Q.t(`fritzdm_personNotFound`);case`loading`:return`…`}let e=this.present;return e===null?`…`:e?this.props.settings.textActive||Q.t(`fritzdm_present`):this.props.settings.text||Q.t(`fritzdm_absent`)}statusColor(e){if(this.state.lookup===`notFound`)return e.palette.warning.main;let t=this.present;return t===null?e.palette.text.disabled:t?this.getAccentColor()||e.palette.success.main:this.getInactiveColor()||e.palette.text.disabled}get since(){let e=this.present;return e===null?0:$(e?this.values.lastArrival:this.values.lastDeparture)}get sinceText(){let e=this.since;return!e||this.props.settings.showSince===!1?``:Q.t(`fritzdm_sinceDuration`,Kn(Math.max(0,this.state.now-e),this.lang))}get showLastChange(){return this.props.settings.showLastChange!==!1&&this.present!==null}get staleSx(){return this.state.connected===!1?{opacity:.55}:{}}get dimmed(){return this.present===!1&&this.props.settings.dimAbsent!==!1}renderAvatar(e,t=!0){let{photo:n,icon:r,iconActive:i}=this.props.settings,a=this.props.stateContext,o=this.present,s=o?i||r:r||i,c=this.dimmed?{filter:`grayscale(1)`,opacity:.55}:{},l=cr(this.displayName),u;return u=n?(0,N.jsx)(`img`,{src:a.getImagePath(n)||n,alt:``,draggable:!1,style:{width:`100%`,height:`100%`,objectFit:`cover`,display:`block`,transition:`filter 0.3s ease, opacity 0.3s ease`,...c}}):s&&$n?(0,N.jsx)(X,{component:`span`,sx:{display:`inline-flex`,width:`62%`,height:`62%`,...c},children:(0,N.jsx)($n,{src:a.getImagePath(s)||s,style:{width:`100%`,height:`100%`,color:`inherit`},styleUTF8:{fontSize:`calc(${e} * 0.5)`,lineHeight:1}})}):l&&this.state.lookup!==`none`?(0,N.jsx)(X,{component:`span`,sx:{fontSize:`calc(${e} * 0.38)`,fontWeight:700,letterSpacing:`0.02em`,lineHeight:1},children:l}):(0,N.jsx)(yn,{sx:{fontSize:`calc(${e} * 0.62)`}}),(0,N.jsxs)(X,{component:`span`,sx:{position:`relative`,display:`inline-flex`,flexShrink:0,width:e,height:e},children:[(0,N.jsx)(X,{component:`span`,sx:t=>{let r=this.statusColor(t);return{width:`100%`,height:`100%`,boxSizing:`border-box`,borderRadius:`50%`,overflow:`hidden`,display:`flex`,alignItems:`center`,justifyContent:`center`,color:n?void 0:r,backgroundColor:n?`transparent`:p(r,o?.18:.1),border:`max(2px, calc(${e} * 0.04)) solid ${p(r,o?.75:.35)}`,transition:`all 0.3s ease`}},children:u}),t&&this.state.lookup===`found`?(0,N.jsx)(X,{component:`span`,sx:e=>({position:`absolute`,right:`1%`,bottom:`1%`,width:`26%`,height:`26%`,minWidth:8,minHeight:8,boxSizing:`border-box`,borderRadius:`50%`,backgroundColor:this.statusColor(e),border:`2px solid ${e.palette.background.paper}`})}):null]})}renderName(e,t){return this.props.settings.showName===!1?null:(0,N.jsx)(Z,{ref:this.nameRef,variant:`body2`,sx:n=>({fontWeight:600,lineHeight:1.3,overflow:`hidden`,whiteSpace:`nowrap`,fontSize:e,...c(n)?{textTransform:`uppercase`,letterSpacing:`0.08em`,fontSize:t}:{}}),children:this.displayName})}renderStatus(e,t){let n=t?this.sinceText:``;return(0,N.jsxs)(X,{title:this.state.lookup===`notFound`?this.notFoundText:void 0,sx:{minWidth:0,fontSize:e,lineHeight:1.35,overflow:`hidden`,whiteSpace:`nowrap`,textOverflow:`ellipsis`,color:`text.secondary`,...this.staleSx},children:[(0,N.jsx)(X,{component:`span`,sx:e=>({fontWeight:700,color:this.statusColor(e)}),children:this.statusText}),n?(0,N.jsx)(X,{component:`span`,children:` · ${n}`}):null]})}renderSince(e){let t=this.sinceText;return t?(0,N.jsx)(Z,{component:`div`,noWrap:!0,sx:{fontSize:e,lineHeight:1.3,color:`text.secondary`,...this.staleSx},children:t}):null}get notFoundText(){return Q.t(`fritzdm_personNotFoundIn`,this.personName,this.instance)}renderEvent(e,t,n){let r=$(e===`arrival`?this.values.lastArrival:this.values.lastDeparture),i=Q.t(e===`arrival`?`fritzdm_lastArrival`:`fritzdm_lastDeparture`),a=e===`arrival`?bn:xn,o=qn(r,this.lang);return(0,N.jsxs)(X,{component:`span`,title:r?`${i}: ${new Date(r).toLocaleString(lr(this.lang))}`:i,sx:{display:`inline-flex`,alignItems:`center`,gap:`0.3em`,minWidth:0,fontSize:t,lineHeight:1.3,whiteSpace:`nowrap`,color:`text.secondary`,fontVariantNumeric:`tabular-nums`,...this.staleSx},children:[(0,N.jsx)(a,{sx:t=>({fontSize:`1.15em`,flexShrink:0,color:e===`arrival`?this.getAccentColor()||t.palette.success.main:t.palette.text.disabled})}),n?(0,N.jsx)(X,{component:`span`,children:i}):null,(0,N.jsx)(X,{component:`span`,sx:{fontWeight:600,color:r?`text.primary`:`text.disabled`,overflow:`hidden`,textOverflow:`ellipsis`},children:o})]})}renderEvents(e,t){return this.showLastChange?(0,N.jsxs)(X,{sx:{display:`flex`,alignItems:`center`,gap:`0.9em`,minWidth:0,fontSize:e,overflow:`hidden`},children:[this.renderEvent(`arrival`,`inherit`,t),this.renderEvent(`departure`,`inherit`,t)]}):null}renderToday(e){let t=$(this.values.presentToday),n=$(this.values.absentToday);if(this.state.lookup!==`found`||t+n<=0)return null;let r=t/(t+n)*100,i=Kn(t*6e4,this.lang),a=Kn(n*6e4,this.lang);return(0,N.jsxs)(X,{sx:{display:`flex`,flexDirection:`column`,gap:`4px`,minWidth:0,fontSize:e,...this.staleSx},children:[(0,N.jsxs)(X,{sx:{display:`flex`,justifyContent:`space-between`,gap:1,color:`text.secondary`},children:[(0,N.jsxs)(X,{component:`span`,sx:{overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},children:[`${Q.t(`fritzdm_presentToday`)}: `,(0,N.jsx)(X,{component:`span`,sx:{fontWeight:600,color:`text.primary`},children:i})]}),(0,N.jsx)(X,{component:`span`,sx:{whiteSpace:`nowrap`},title:`${Q.t(`fritzdm_absentToday`)}: ${a}`,children:a})]}),(0,N.jsx)(X,{title:`${Q.t(`fritzdm_presentToday`)}: ${i} · ${Q.t(`fritzdm_absentToday`)}: ${a}`,sx:{height:4,borderRadius:2,overflow:`hidden`,backgroundColor:`rgba(127,127,127,0.22)`},children:(0,N.jsx)(X,{sx:e=>({width:`${r}%`,height:`100%`,borderRadius:`inherit`,backgroundColor:this.getAccentColor()||e.palette.success.main,transition:`width 0.6s ease`})})})]})}renderTileHistory(e){if(this.props.settings.showHistory===!1||this.state.lookup!==`found`)return null;let t=Hn(this.values.history).slice(0,rr);return t.length?(0,N.jsx)(X,{sx:{display:`flex`,flexDirection:`column`,gap:`max(2px, 0.8cqi)`,minWidth:0,fontSize:e,...this.staleSx},children:t.map(e=>{let t=e.present?bn:xn;return(0,N.jsxs)(X,{sx:{display:`flex`,alignItems:`center`,gap:`0.45em`,minWidth:0,lineHeight:1.3},children:[(0,N.jsx)(t,{sx:t=>({fontSize:`1.1em`,flexShrink:0,color:e.present?this.getAccentColor()||t.palette.success.main:t.palette.text.disabled})}),(0,N.jsx)(X,{component:`span`,sx:{color:`text.secondary`,flexShrink:0},children:Q.t(e.present?`fritzdm_came`:`fritzdm_left`)}),(0,N.jsx)(X,{component:`span`,sx:{ml:`auto`,fontWeight:600,whiteSpace:`nowrap`,overflow:`hidden`,textOverflow:`ellipsis`,fontVariantNumeric:`tabular-nums`},children:qn(e.ts,this.lang)})]},`${e.ts}_${e.present}`)})}):null}renderTileIndicators(){return(0,N.jsx)(`div`,{onClick:m,onKeyDown:m,style:{display:`contents`},children:this.renderIndicators(this.renderSettingsButton())})}renderFrame(e,t,n){let r=this.isTileActive(),i=this.canOpenHistory;return(0,N.jsxs)(X,{id:String(this.props.widget.id),className:this.getWidgetClass(),sx:t=>y(t,e),children:[e===`2x1`?(0,N.jsx)(X,{sx:{width:`calc(50% - 6px)`,aspectRatio:`1`}}):null,(0,N.jsxs)(X,{role:i?`button`:void 0,tabIndex:i?0:void 0,"aria-label":i?`${this.displayName} - ${Q.t(`fritzdm_showHistoryOf`)}`:`${this.displayName}: ${this.statusText}`,onClick:i?this.openHistory:void 0,onKeyDown:i?this.onTileKeyDown:void 0,sx:n=>({boxSizing:`border-box`,position:e===`2x1`?`absolute`:`relative`,...e===`2x1`?{inset:0}:{},width:`100%`,overflow:`hidden`,userSelect:`none`,cursor:i?`pointer`:`default`,textAlign:`left`,color:`text.primary`,outline:`none`,...d(n,r,this.getAccentColor()||n.palette.success.main,i,this.getInactiveColor()),"&:focus-visible":{boxShadow:`0 0 0 2px ${this.statusColor(n)} inset`},...t(n)}),children:[n,this.renderTileIndicators()]}),this.state.historyOpen?(0,N.jsx)(`span`,{style:{display:`contents`},onClick:m,onPointerDown:m,onMouseDown:m,onTouchStart:m,onKeyDown:m,children:this.renderHistoryDialog()}):null]})}renderHistoryRow(e,t,n){let r=lr(this.lang),i=e.present?bn:xn,a=Kn(Math.max(0,t-e.ts),this.lang),o=n?Q.t(`fritzdm_sinceDuration`,a):Q.t(e.present?`fritzdm_stayed`:`fritzdm_wasAway`,a);return(0,N.jsxs)(X,{sx:{display:`flex`,alignItems:`center`,gap:1.5,py:.75,minWidth:0},children:[(0,N.jsx)(X,{sx:t=>{let n=e.present?this.getAccentColor()||t.palette.success.main:t.palette.text.secondary;return{width:32,height:32,flexShrink:0,borderRadius:`50%`,display:`flex`,alignItems:`center`,justifyContent:`center`,color:n,backgroundColor:p(n,.14)}},children:(0,N.jsx)(i,{sx:{fontSize:18}})}),(0,N.jsxs)(X,{sx:{flex:1,minWidth:0},children:[(0,N.jsx)(Z,{noWrap:!0,sx:{fontSize:`0.9rem`,fontWeight:600,lineHeight:1.3},children:Q.t(e.present?`fritzdm_came`:`fritzdm_left`)}),(0,N.jsx)(Z,{noWrap:!0,variant:`caption`,component:`div`,sx:{color:`text.secondary`,fontStyle:n?`italic`:`normal`,lineHeight:1.3},children:o})]}),(0,N.jsx)(Z,{title:new Date(e.ts).toLocaleString(r),sx:{fontSize:`0.9rem`,fontWeight:600,fontVariantNumeric:`tabular-nums`,flexShrink:0},children:new Date(e.ts).toLocaleTimeString(r,{hour:`2-digit`,minute:`2-digit`})})]},`${e.ts}_${e.present}`)}renderHistoryList(){let{events:e,loading:t}=this.state.history;if(t&&!e.length)return(0,N.jsx)(X,{sx:{display:`flex`,justifyContent:`center`,py:4},children:(0,N.jsx)(Qn,{size:28})});if(!e.length)return(0,N.jsx)(Z,{sx:{py:3,textAlign:`center`,color:`text.secondary`,fontSize:`0.9rem`},children:Q.t(`fritzdm_noHistory`)});let n=[];return e.forEach((t,r)=>{let i=ur(t.ts,this.lang),a=r===0?this.state.now:e[r-1].ts,o=r===0&&this.present===t.present,s=this.renderHistoryRow(t,a,o),c=n[n.length-1];(c==null?void 0:c.day)===i?c.rows.push(s):n.push({day:i,rows:[s]})}),(0,N.jsx)(X,{sx:{opacity:t?.6:1,transition:`opacity 0.2s ease`},children:n.map(e=>(0,N.jsxs)(X,{sx:{mb:1.5},children:[(0,N.jsx)(Z,{component:`div`,sx:e=>({py:.5,fontSize:`0.75rem`,fontWeight:700,letterSpacing:`0.04em`,textTransform:`uppercase`,color:`text.secondary`,borderBottom:`1px solid ${p(e.palette.text.primary,.08)}`}),children:e.day}),e.rows]},e.day))})}renderHistoryDialog(){let{source:e,instance:t,events:n}=this.state.history,r=String(this.values.devices??``).trim(),i=e===`history`?Q.t(`fritzdm_historyFrom`,t||`history`):e===`adapter`?Q.t(`fritzdm_historyFromAdapter`):``;return(0,N.jsxs)(Jn,{open:!0,onClose:this.closeHistory,maxWidth:`xs`,fullWidth:!0,"aria-labelledby":`${this.dialogId}-title`,slotProps:{paper:{sx:{maxHeight:`min(760px, calc(100dvh - 32px))`,"@media (max-width: 599.95px)":{m:1,width:`calc(100% - 16px)`}}}},children:[(0,N.jsxs)(Yn,{id:`${this.dialogId}-title`,component:`div`,sx:{display:`flex`,alignItems:`center`,gap:1.5,pr:1,py:1.5},children:[this.renderAvatar(`44px`),(0,N.jsxs)(X,{sx:{flex:1,minWidth:0},children:[(0,N.jsx)(Z,{component:`h2`,noWrap:!0,sx:{fontSize:`1.05rem`,fontWeight:600,lineHeight:1.3},children:this.displayName}),this.renderStatus(`0.8rem`,!0)]}),(0,N.jsx)(Zn,{onClick:()=>this.loadHistory(),title:Q.t(`fritzdm_refresh`),"aria-label":Q.t(`fritzdm_refresh`),disabled:this.state.history.loading,children:(0,N.jsx)(Cn,{})}),(0,N.jsx)(Zn,{onClick:this.closeHistory,title:Q.t(`fritzdm_close`),"aria-label":Q.t(`fritzdm_close`),children:(0,N.jsx)(_n,{})})]}),(0,N.jsxs)(Xn,{sx:{pt:0,display:`flex`,flexDirection:`column`,gap:1.5},children:[this.renderToday(`0.8rem`),r&&this.present?(0,N.jsxs)(X,{sx:{display:`flex`,alignItems:`center`,gap:.75,color:`text.secondary`,fontSize:`0.8rem`,minWidth:0},children:[(0,N.jsx)(wn,{sx:{fontSize:`1.2em`,flexShrink:0}}),(0,N.jsx)(X,{component:`span`,sx:{overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},title:r,children:r})]}):null,(0,N.jsxs)(X,{sx:{display:`flex`,alignItems:`center`,gap:.75,mt:.5},children:[(0,N.jsx)(Sn,{sx:{fontSize:18,color:`text.secondary`}}),(0,N.jsx)(Z,{sx:{fontSize:`0.85rem`,fontWeight:700},children:Q.t(`fritzdm_historyTitle`)})]}),(0,N.jsx)(X,{sx:{minHeight:0},children:this.renderHistoryList()}),i&&n.length?(0,N.jsx)(Z,{variant:`caption`,sx:{color:`text.disabled`,textAlign:`right`},children:i}):null]})]})}renderCompact(){let e=e=>c(e)?`max(12px, 8cqi)`:`max(14px, 9cqi)`;return this.renderFrame(`1x1`,t=>({display:`flex`,flexDirection:`column`,justifyContent:`space-between`,aspectRatio:`1`,padding:e(t)}),(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)(X,{sx:t=>({display:`flex`,alignItems:`flex-start`,minHeight:0,mt:v(e(t))}),children:this.renderAvatar(`max(40px, 32cqi)`)}),(0,N.jsxs)(X,{sx:{minWidth:0},children:[this.renderName(`max(0.85rem, 9cqi)`,`max(0.68rem, 6.8cqi)`),this.renderStatus(`max(0.7rem, 7.2cqi)`,!1),this.renderSince(`max(0.62rem, 6.2cqi)`)]})]}))}renderWide(){let e=this.renderEvents(`0.68rem`,!1);return this.renderFrame(`2x0.5`,e=>({display:`flex`,alignItems:`center`,gap:`max(10px, 3cqi)`,height:80,padding:c(e)?`8px 12px`:`8px 14px`}),(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)(X,{sx:{alignSelf:`flex-end`,display:`flex`},children:this.renderAvatar(`44px`)}),(0,N.jsxs)(X,{sx:{flex:1,minWidth:0,display:`flex`,flexDirection:`column`,gap:`2px`},children:[(0,N.jsx)(X,{sx:{pr:`26px`,minWidth:0},children:this.renderName(`0.9rem`,`0.74rem`)}),this.renderStatus(`0.74rem`,!0),e]})]}))}renderWideTall(){let e=e=>c(e)?`max(12px, 3.5cqi)`:`max(14px, 4cqi)`;return this.renderFrame(`2x1`,t=>({display:`flex`,flexDirection:`column`,justifyContent:`space-between`,gap:`6px`,height:`100%`,padding:e(t)}),(0,N.jsxs)(N.Fragment,{children:[(0,N.jsxs)(X,{sx:t=>({display:`flex`,alignItems:`center`,gap:`max(12px, 3.5cqi)`,minWidth:0,flex:1,mt:v(e(t))}),children:[this.renderAvatar(`max(52px, 19cqi)`),(0,N.jsxs)(X,{sx:{flex:1,minWidth:0,pr:`20px`},children:[this.renderName(`max(0.95rem, 5.4cqi)`,`max(0.76rem, 3.8cqi)`),this.renderStatus(`max(0.78rem, 3.9cqi)`,!1),this.renderSince(`max(0.7rem, 3.3cqi)`)]})]}),this.renderEvents(`max(0.68rem, 3.1cqi)`,!0)]}))}renderHuge(){let e=this.canOpenHistory,t=this.renderTileHistory(`max(0.72rem, 2.9cqi)`),n=e=>c(e)?`max(14px, 4.5cqi)`:`max(16px, 5cqi)`;return this.renderFrame(`2x2`,e=>({display:`flex`,flexDirection:`column`,gap:`max(8px, 2.6cqi)`,aspectRatio:`1`,padding:n(e)}),(0,N.jsxs)(N.Fragment,{children:[(0,N.jsxs)(X,{sx:e=>({display:`flex`,alignItems:`center`,gap:`max(12px, 3.5cqi)`,minWidth:0,pr:`26px`,mt:v(n(e))}),children:[this.renderAvatar(`max(60px, 22cqi)`),(0,N.jsxs)(X,{sx:{flex:1,minWidth:0},children:[this.renderName(`max(1rem, 5.6cqi)`,`max(0.8rem, 4cqi)`),this.renderStatus(`max(0.82rem, 3.8cqi)`,!1),this.renderSince(`max(0.74rem, 3.2cqi)`)]})]}),this.renderEvents(`max(0.72rem, 3cqi)`,!0),this.renderToday(`max(0.68rem, 2.7cqi)`),t,e?(0,N.jsxs)(X,{sx:e=>({mt:`auto`,pt:`max(6px, 1.8cqi)`,borderTop:`1px solid ${p(e.palette.text.primary,.1)}`,display:`flex`,alignItems:`center`,gap:.75,color:`text.secondary`,fontSize:`max(0.72rem, 2.9cqi)`,fontWeight:600,"& .MuiSvgIcon-root":{fontSize:`1.3em`}}),children:[(0,N.jsx)(Sn,{}),(0,N.jsx)(X,{component:`span`,sx:{flex:1,minWidth:0,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},children:Q.t(`fritzdm_historyTitle`)}),(0,N.jsx)(vn,{})]}):null]}))}}};export{dr as default};
@@ -1,4 +1,4 @@
1
- import{t as e}from"./assets/vite-preload-helper-BbbETgeG.js";import{t}from"./assets/dist-BkS8HKl2.js";import{t as n}from"./assets/helpers-ClFTp7rx.js";var r={},i=new Set,a=new Map;function o(e,t){let n=a.get(e);return n||(n=Promise.resolve().then(t).catch(t=>{throw a.delete(e),t}),a.set(e,n)),n}async function s(e){if(typeof document>`u`)return;let t=r[e]||[];await Promise.all(t.map(e=>{let t=new URL(e,import.meta.url).href;return i.has(t)||(i.add(t),document.querySelector(`link[rel="stylesheet"][href="${t}"]`))?Promise.resolve():new Promise((e,n)=>{let r=document.createElement(`link`);r.rel=`stylesheet`,r.href=t,r.onload=()=>e(),r.onerror=()=>n(Error(`[Module Federation] Failed to load CSS asset: ${t}`)),document.head.appendChild(r)})}))}var c={"./Components":async()=>{await s(`./Components`),await Promise.all([]);let t=await o(`./Components`,()=>e(()=>import(`./assets/Components-BjwJD5XF.js`),[],import.meta.url)),n=t&&t.__mf_remote_dependency_pending;n&&typeof n.then==`function`&&await n;let r={};return Object.assign(r,t),Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),r},"./translations":async()=>{await s(`./translations`),await Promise.all([]);let t=await o(`./translations`,()=>e(()=>import(`./assets/translations-DD1c0Wnf.js`),[],import.meta.url)),n=t&&t.__mf_remote_dependency_pending;n&&typeof n.then==`function`&&await n;let r={};return Object.assign(r,t),Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),r}};typeof __VUE_HMR_RUNTIME__>`u`&&(globalThis.__VUE_HMR_RUNTIME__={createRecord(){},rerender(){},reload(){}});var l=`__mf_init__virtual:mf:__mfe_internal__DevicesWidgetTr064Set__mf_owner__212620212104624__mf_v__runtimeInit__mf_v__.js__`,u=globalThis[l];if(!u){let e,t,n=new Promise((n,r)=>{e=n,t=r});u=globalThis[l]={initPromise:n,initResolve:e,initReject:t}}var d=u.initResolve,f=`__mf_module_cache__`;globalThis[f]||={share:{},remote:{}},globalThis[f].share||={},globalThis[f].remote||={};var p=globalThis[f];for(let e of Object.keys(p.share))if(e.startsWith(`default:`)){let t=e.slice(8);p.share[t]===void 0&&(p.share[t]=p.share[e])}else if(!e.includes(`:`)){let t=`default:`+e;p.share[t]===void 0&&(p.share[t]=p.share[e])}var m={},h=Array.isArray(`default`)?`default`:[`default`],g=`default`,_=`DevicesWidgetTr064Set`,v=[[`@iobroker/dm-widgets`]],y,b;async function x(e){for(let t=0;;t++)try{return await e()}catch(e){throw e}}var S=Symbol(`mf.originalSharedProvider`),C={emit:e=>e},w=e=>Array.isArray(e.scope)?e.scope:[e.scope||`default`],T=(e,t)=>{if(t!==`version-first`)return e;let n={};for(let[t,r]of Object.entries(e))n[t]=Object.assign({},r,{[S]:r});return n},E=(e,t)=>{if(!t)return;let n=Object.entries(e||{}),r=n.find(([,e])=>e===t);if(r)return{version:r[0],provider:t,registered:!0};if(typeof t.version==`string`&&t.version)return{version:t.version,provider:t,registered:!1};let i=n.filter(([,e])=>e===t||!!(t.from&&(e==null?void 0:e.from)===t.from));if(i.length===1)return{version:i[0][0],provider:t,registered:!1}},D=(e,t,r,i)=>{var a;if(!e||!r)return;let o=Object.fromEntries(Object.entries(e).filter(([,e])=>{var t;return(e==null||(t=e.shareConfig)==null?void 0:t.import)!==!1}));if(Object.keys(o).length===0)return;let s=w(r),c=T(o,i),l={};for(let e of s)l[e||`default`]={[t]:c};let u=(a=n.getRegisteredShare(l,t,{...r,scope:s,strategy:i},C))==null?void 0:a.shared;return(u==null?void 0:u[S])||u},O=(e,t,n,r)=>{var i;let a=e=>k(e,n),o=Object.fromEntries(Object.entries(e||{}).filter(([,e])=>{var t;return!a(e)&&(e==null||(t=e.shareConfig)==null?void 0:t.import)!==!1}));n!=null&&n.version&&((i=n.shareConfig)==null?void 0:i.import)!==!1&&(o[n.version]||(o[n.version]=n));let s=D(o,t,n,r);return a(s)?void 0:s},k=(e,t)=>e===t||!!(t!=null&&t.from&&(e==null?void 0:e.from)===t.from),A=(e,t,n,r,i,a,o,s,c)=>{var l,u;if(c!==`version-first`||!s)return;let d=t==null||(l=t.options)==null||(l=l.shared)==null?void 0:l[i],f=Array.isArray(d)?d.find(e=>(e==null?void 0:e.version)===a):void 0,p=((s==null?void 0:s.from)===(t==null||(u=t.options)==null?void 0:u.name)?s:void 0)||(k(f,s)?f:t?void 0:s);if(p)return e.some(e=>{var i,a;return e!==t&&(e==null||(i=e.options)==null?void 0:i.name)===(o==null?void 0:o.from)&&(e==null||(a=e.shareScopeMap)==null?void 0:a[r])===n})?p:void 0},ee=(e,t,n,r,i,a,o,s,c)=>{let l=a.registered?A(e,t,n,r,i,a.version,a.provider,s,c):void 0,u=l||o;if(u&&(!a.registered||k(u,s)))return{provider:u,scopeRootProvider:l}};async function te(){return y||=x(()=>e(()=>import(`./assets/_virtual_mf-localSharedImportMap___mfe_internal__DevicesWidgetTr064Set__mf_owner__1-BLwubH36.js`),[],import.meta.url)).catch(e=>{throw y=void 0,e}),y}async function j(){return c}async function M(e={},n=[],r={}){var i,a;let o=(e,t,n,r)=>{let i=(Array.isArray(r)?r[0]:r)||`default`,a=t||!n?e:e+`@`+n,o={canonical:i+`:`+a};return i==="default"&&(o.aliases=[a]),o},s=(e,t)=>{let n=e[t.canonical];if(n!==void 0)return n;let r=t.aliases||[];for(let n of r){if(!Object.prototype.hasOwnProperty.call(e,n))continue;let r=e[n];if(r!==void 0)return e[t.canonical]=r,r}},c=Symbol.for(`module-federation.shared-cache-listeners`),l=Symbol.for(`module-federation.shared-cache-owners`),f=e=>{let t=e[l];return t===void 0&&(t=Object.create(null),Object.defineProperty(e,l,{value:t,enumerable:!1,configurable:!1,writable:!1})),t},y=(e,t)=>{var n;return(n=e[l])==null?void 0:n[t.canonical]},S=e=>{let t=[e,e==null?void 0:e.default];for(let e of t)if(e&&typeof e==`object`){for(let t of[`__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE`,`__TEST_INTERNALS`,`__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED`]){let n=e[t];if(n&&typeof n==`object`)return{internals:n}}if(typeof e.useState==`function`)return{hook:e.useState}}},C=(e,t)=>{if(e===t)return!0;let n=S(e),r=S(t);if(!n||!r)return!1;let i=n.internals,a=r.internals;return i!==void 0||a!==void 0?i!==void 0&&i===a:typeof n.hook==`function`&&n.hook===r.hook},w=(e,t,n,r)=>{var i;let a=s(e,t);if(a!==void 0&&C(a,n))return n;e[t.canonical]=n;let o=t.aliases||[];for(let t of o)Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0});let u=e[l];r===void 0?u&&delete u[t.canonical]:f(e)[t.canonical]=r;let d=(i=e[c])==null?void 0:i[t.canonical];if(d)for(let e of d)e(n);return n},T=Symbol.for(`module-federation.tree-shaking-shared-cache`),A=e=>{let t=e[T];return t===void 0&&(t=Object.create(null),Object.defineProperty(e,T,{value:t,enumerable:!1,configurable:!1,writable:!1})),t},j=(e,t,n,r)=>{if(!Array.isArray(n))return r;let i=[...new Set(n)].sort(),a=A(e),o=a[t.canonical]||=[],s=o.find(e=>e.providedExports.length===i.length&&e.providedExports.every((e,t)=>e===i[t]));return s?s.value=r:o.push({providedExports:i,value:r}),r},M=Symbol.for(`module-federation.tree-shaking-shared-selection-cache`),N=e=>{let t=e[M];return t===void 0&&(t=Object.create(null),Object.defineProperty(e,M,{value:t,enumerable:!1,configurable:!1,writable:!1})),t},P=(e,t,n)=>{var r;let i=s(e,t);return i===void 0?(r=e[M])==null||(r=r[t.canonical])==null?void 0:r[n]:i},F=(e,t,n,r)=>{let i=N(e),a=i[t.canonical]||=Object.create(null);return a[n]=r,r},I=((i=globalThis.__FEDERATION__)==null?void 0:i.__INSTANCES__)||[],L=(a=n.find(e=>e==null?void 0:e.from))==null?void 0:a.from,ne=I.find(t=>{var n,r;return(t==null||(n=t.options)==null?void 0:n.name)===L&&(t==null||(r=t.shareScopeMap)==null?void 0:r.default)===e})||I.find(t=>{var n,r;return(t==null||(n=t.options)==null?void 0:n.name)!==_&&(t==null||(r=t.shareScopeMap)==null?void 0:r.default)===e}),R=Object.create(null),re=e=>{let t=Object.create(null);for(let[n,r]of Object.entries(e||{}))t[n]=Object.assign(Object.create(null),r);return t},ie=(e,t)=>{var n;for(let[i,a]of Object.entries(((n=q.shareScopeMap)==null?void 0:n[e])||{}))for(let[e,n]of Object.entries(a||{})){var r;if(!n||n.get===((r=B[i])==null?void 0:r.get))continue;let a=t[i]||={};a[e]===void 0&&(a[e]=n)}},ae=(e,t)=>{ie(e,t);let n=!ne&&Object.values(t||{}).some(e=>Object.values(e||{}).some(V)),r=n?re(t):t;return R[e]={host:t,runtime:r,isWebpackScope:n},r},oe=()=>{let e=Object.values(R).filter(({isWebpackScope:e})=>e);if(e.length!==0)for(let{host:t,runtime:n}of e)for(let[e,r]of Object.entries(t||{})){let t=n[e]||=Object.create(null);for(let[e,n]of Object.entries(r||{}))t[e]=n}},z=Object.create(null);for(let[t,n]of Object.entries(e)){let e=z[t]=Object.create(null);for(let[t,r]of Object.entries(n))e[t]=Object.assign({},r)}let{usedShared:B,usedRemotes:se}=await te();function V(e){if(typeof(e==null?void 0:e.get)!=`function`)return!1;let t=Function.prototype.toString.call(e.get);return t.includes(`__webpack_require__`)||/\.\s*e\s*\([^)]*\)\s*\.then\s*\(/.test(t)}let ce=Object.values(z).some(e=>Object.values(e||{}).some(V)),le=e=>{let t=e.split(`/`);return e.startsWith(`@`)?t.slice(0,2).join(`/`):t[0]},H=(t,n,r,i)=>{if(typeof O!=`function`)return;let a=le(t),o=!i||a===t?[[t,n]]:[[t,n],[a,B[a]]];for(let[n,i]of o){if(!i)continue;let a=O(r?n===t?r:z[n]:z[n]??e[n],n,i,`version-first`);if(a)return a}},ue=(e,t,n)=>{let r=H(e,t,n,!0);return r&&V(r)&&!r.lib&&!r.loaded?r:void 0};var U=m[g];if(U||=m[g]={from:_},n.indexOf(U)>=0)return;n.push(U);let de=e=>{let t=e;for(let e=0;e<5;e++){let e=t==null?void 0:t.default;if(!e||typeof e!=`object`||Object.keys(e).length===0)break;let n=Object.getPrototypeOf(e);if(n!==null&&n!==Object.prototype)break;let r=Object.keys(t).filter(e=>e!=="default").map(e=>t[e]);if(r.length>0&&r.some(e=>e!==void 0))break;t=e}return t},fe=[],pe=globalThis.window===void 0?await Promise.all([]):[],W=`__mf_vite_runtime_share_load_id__`,me=0,G=new Map,K=new Map,q=t({name:_,remotes:se,shared:B,plugins:[he(),ge(),...fe,...pe],shareStrategy:`version-first`});q.initShareScopeMap(`default`,ae(`default`,e));function he(){return{name:`vite-share-pin-lifecycle-plugin`,resolveShare(e){var t;let n=(t=e.shareInfo)==null?void 0:t[W],r=n===void 0?void 0:K.get(n);if(!r)return e;let i=e.resolver;return e.resolver=(...e)=>(r.pinned.reapply(),i(...e)),r.pinned.reveal(),e}}}function ge(){return{name:`vite-real-name-snapshot-plugin`,afterLoadSnapshot(e){let t=e&&e.remoteSnapshot,n=t&&t.globalName,r=t&&t.version;if(!n||!r||!t.remoteEntry)return e;let i=globalThis.__FEDERATION__&&globalThis.__FEDERATION__.moduleInfo,a=n+`:`+r;return i&&!i[a]&&(i[a]=t),e}}}let _e=q.sharedHandler.hooks.lifecycle.resolveShare;if(!q.__mfKeepAdoptedProviders){var J,ve;q.__mfKeepAdoptedProviders=!0,(J=q.sharedHandler)==null||(J=J.hooks)==null||(J=J.lifecycle)==null||(J=J.afterRegisterShare)==null||(ve=J.on)==null||ve.call(J,e=>{var t,n,r;let{shared:i,previousShared:a,registeredShared:o}=e||{};if((i==null||(t=i.shareConfig)==null?void 0:t.import)!==!1||o!==i||!a||((n=a.shareConfig)==null?void 0:n.import)===!1)return;let s=(r=q.shareScopeMap)==null||(r=r[e.scope])==null?void 0:r[e.pkgName];s&&s[i.version]===i&&(s[i.version]=a)})}let Y=new WeakMap;_e.on(e=>{var t;let n=(t=e.shareInfo)==null?void 0:t[W],r=e.resolver;return typeof r==`function`&&(e.resolver=(...t)=>{var i;let a=r(...t);if((a==null||(i=a.shared)==null||(i=i.shareConfig)==null?void 0:i.import)===!1&&typeof D==`function`&&B[e.pkgName]){var o,s;let t=D((o=e.shareScopeMap)==null||(o=o[e.scope])==null?void 0:o[e.pkgName],e.pkgName,B[e.pkgName],`version-first`);t&&((s=t.shareConfig)==null?void 0:s.import)!==!1&&(a={shared:t,useTreesShaking:a.useTreesShaking})}let c=a==null?void 0:a.shared;return c&&(typeof c==`object`||typeof c==`function`)&&!Y.has(c)&&Y.set(c,{from:c.from}),n!==void 0&&c&&G.set(n,c),a}),e});let ye=(e,t,n,r)=>{if(!e||e[t]!==n)return;let i=Object.assign({},r,{version:r.version??t,scope:r.scope??(n==null?void 0:n.scope)??[`default`],strategy:`loaded-first`}),a=r.from;e[t]=i;let o=()=>n===void 0?e[t]===void 0:e[t]===n;return{provider:i,reveal(){return e[t]===i&&(n===void 0?delete e[t]:e[t]=n,!0)},reapply(){return o()?(e[t]=i,!0):!1},release(s,c=!0){return r.from=a,e[t]===i?c?s?(i.from=a,s&&i.lib&&(i.loaded=!0),r.strategy===void 0?delete i.strategy:i.strategy=r.strategy,!0):(n===void 0?delete e[t]:e[t]=n,!1):(n===void 0?delete e[t]:e[t]=n,!0):!c&&o()}}},be=e=>Object.entries(e||{}).map(([e,t])=>({provider:t,version:e,from:t.from,registered:!0})),xe=(e,t)=>{if(t===void 0)return;let n;for(let r of e){let e=r.provider,i=e.treeShaking||e;if(r.loadedFactory===t||e.lib===t||i.lib===t){if(n)return;n=r}}return n},Se=async(e,t,n)=>{let r=++me;K.set(r,{pinned:n});try{let n=await q.loadShare(e,{customShareInfo:{shareConfig:t,[W]:r}});return{factory:n===!1?void 0:n,selectedProvider:G.get(r)}}finally{G.delete(r),K.delete(r)}},Ce=async(e,t,n,r,i,a,o=!0)=>{let s=a.from,c=ye(n,r,i,a);if(!c)return;let l;try{l=await Se(e,t,c)}catch(e){throw c.release(!1),e}let u=l==null?void 0:l.factory;if(u===void 0){c.release(!1);return}let d=be(n),f=c.provider.treeShaking||c.provider,p=c.provider.lib===u||f.lib===u;if(!o&&p){let e=d.findIndex(e=>e.provider===c.provider);e!==-1&&d.splice(e,1)}!o&&!d.some(e=>e.provider===a)&&d.push({provider:a,version:r,from:s,registered:!1,loadedFactory:p?u:void 0});let m=!o&&l.selectedProvider===c.provider&&p?a:l.selectedProvider;if(m&&!d.some(e=>e.provider===m)){let e=Y.get(m),t=typeof m.version==`string`&&m.version?m.version:r;d.push({provider:m,version:t,from:e?e.from:m.from,registered:(n==null?void 0:n[t])===m,loadedFactory:u})}let h=d.find(e=>e.provider===m)??xe(d,u);if(!c.release(!0,(h==null?void 0:h.provider)===c.provider)||!h)return;let g=Y.get(h.provider);h.from=h.provider===a?s:g?g.from:h.provider.from,g&&(h.provider.from=g.from);let _=typeof u==`function`?u():u,v=await Promise.resolve(_);if(!(h.registered&&(n==null?void 0:n[h.version])!==h.provider))return{provider:h.provider,selection:h,resolved:v}},X=new Set,we=new Map,Te=async(t,n,r)=>{var i;let a=!!((i=n.shareConfig)!=null&&i.singleton);if(!a&&n.canLiveRebind!==!1)try{var c,l;let i=O(r,t,n,`version-first`),u=E(r,i);if(!u||((c=n.shareConfig)==null?void 0:c.import)===!1&&k(i,n)||(i==null||(l=i.shareConfig)==null?void 0:l.import)===!1)return;let{version:d}=u;if(!a&&d!==n.version||!i.lib&&!i.loading&&!(i.loaded&&typeof i.get==`function`))return;let f=o(t,a,n.version,n.scope);if(s(p.share,f)!==void 0)return;let m=e[t],h=m==null?void 0:m[d];if(u.registered&&!k(h,i))return;let g,_=i.lib;if(!_&&V(i)||(!_&&i.loading&&(_=await i.loading),!_&&i.loaded&&typeof i.get==`function`&&(_=await i.get()),!_))return;let v=typeof _==`function`?_():_,y=await Promise.resolve(v),b=u.registered?h:i;g={provider:b,selection:{provider:b,version:d,from:i.from,registered:u.registered},resolved:y};let x=g==null?void 0:g.provider,S=g==null?void 0:g.selection;if(!S)return;let C=g==null?void 0:g.resolved;if(C===void 0||s(p.share,f)!==void 0||S.registered&&(m==null?void 0:m[S.version])!==x)return;w(p.share,f,de(C),S.from),X.add(x)}catch(e){console.error(`[Module Federation] Failed to bridge materialized shared module "`+t+`"`,e)}},Ee=async(t,n,r,i,a)=>{try{var c,l,u,d;let f=o(t,(c=n.shareConfig)==null?void 0:c.singleton,n.version,n.scope),m=s(p.share,f),h=y(p.share,f),g=O(r,t,n,`version-first`),v=g||D(r,t,n,`version-first`)||n,b=E(r,v);if(!b)return;let x=k(v,n),{version:S}=b;if(!((l=n.shareConfig)!=null&&l.singleton)&&S!==n.version)return;let C=i==null?void 0:i[S],T=ee(I,ne,e,`default`,t,b,g,C,`version-first`);if(!T&&!x)return;let{provider:A,scopeRootProvider:te}=T||{provider:v,scopeRootProvider:void 0};if(n.canLiveRebind===!1||((u=n.shareConfig)==null?void 0:u.import)===!1&&k(A,n)||(A==null||(d=A.shareConfig)==null?void 0:d.import)===!1||m!==void 0&&h!==_)return;let j=e[t],M=j==null?void 0:j[S];if(b.registered&&!te&&!k(M,A))return;let N=await Ce(t,n.shareConfig,j,S,M,A,b.registered&&!x),P=N==null?void 0:N.provider,F=N==null?void 0:N.selection;if(!F||k(P,n)||a&&(a.version!==F.version||!k({from:F.from},a.provider))||X.has(P))return;let L=N==null?void 0:N.resolved;if(L===void 0)return;let R=s(p.share,f),re=y(p.share,f);if(R!==void 0&&re!==_||F.registered&&(j==null?void 0:j[F.version])!==P)return;a||we.set(t,{version:F.version,provider:{from:F.from}}),X.add(P);let ie=de(L);w(p.share,f,ie,F.from)}catch(e){console.error(`[Module Federation] Failed to bridge external shared module "`+t+`"`,e)}};for(let e of v)await Promise.all(e.map(async e=>{let t=B[e];t&&t.materialize!==!1&&!t.treeShaking&&await Te(e,t,z[e])}));for(let[e,t]of Object.entries(B)){var De;if(t.treeShaking)continue;let n=o(e,(De=t.shareConfig)==null?void 0:De.singleton,t.version,t.scope);if(s(p.share,n)!==void 0)continue;let r=o(e,!0,t.version,t.scope),i=s(p.share,r);i!==void 0&&w(p.share,n,i,y(p.share,r))}let Oe=[`@iobroker/dm-widgets`],ke=[[`@iobroker/dm-widgets`]],Z=new Map(Oe.map((e,t)=>[e,t])),Ae={},Q=Oe.filter(e=>{var t;return B[e]&&(B[e].materialize!==!1||((t=B[e].shareConfig)==null?void 0:t.import)===!1&&!B[e].lazy)});p.providerInit||=new Map;let je=(e,t)=>{let n=p.providerInit.get(e);if(n)return n;let r=Promise.resolve().then(t);return p.providerInit.set(e,r),r.catch(()=>p.providerInit.delete(e)),r};var Me=async e=>{let t=new Set(e);for(let e of ke)await Promise.all(e.filter(e=>t.has(e)).map(async e=>{var t,n,r;let i=B[e],a=o(e,(t=i.shareConfig)==null?void 0:t.singleton,i.version,i.scope);if(((n=i.shareConfig)==null?void 0:n.import)===!1||i.treeShaking||s(p.share,a)!==void 0)return;let c=o(e,!0,i.version,i.scope),l=s(p.share,c);if(l!==void 0){w(p.share,a,l,y(p.share,c));return}let u=typeof H==`function`?H(e,i):void 0;if(u){var d,f;let t=u.lib;if(!t&&u.loading&&(t=await u.loading),!t&&u.loaded&&typeof u.get==`function`&&(t=await u.get()),t){let e=typeof t==`function`?t():t,n=await Promise.resolve(e);w(p.share,a,(e=>{let t=e;for(let e=0;e<5;e++){let e=t==null?void 0:t.default;if(!e||typeof e!=`object`||Object.keys(e).length===0)break;let n=Object.getPrototypeOf(e);if(n!==null&&n!==Object.prototype)break;let r=Object.keys(t).filter(e=>e!=="default").map(e=>t[e]);if(r.length>0&&r.some(e=>e!==void 0))break;t=e}return t})(n),u.from);return}if(typeof V==`function`&&V(u)&&((d=i.shareConfig)!=null&&d.singleton||((f=E(z[e],u))==null?void 0:f.version)===i.version))return}let m=a.canonical,h=await je(m,async()=>{let e=await i.get(),t=typeof e==`function`?e():e;return Promise.resolve(t)});for(let t of((r=q.options.shared)==null?void 0:r[e])||[])t.get===i.get&&(t.eager=!0);let g=(e=>{let t=e;for(let e=0;e<5;e++){let e=t==null?void 0:t.default;if(!e||typeof e!=`object`||Object.keys(e).length===0)break;let n=Object.getPrototypeOf(e);if(n!==null&&n!==Object.prototype)break;let r=Object.keys(t).filter(e=>e!=="default").map(e=>t[e]);if(r.length>0&&r.some(e=>e!==void 0))break;t=e}return t})(h),v=g===h?{...h}:g;v.__esModule!==!0&&Object.defineProperty(v,"__esModule",{value:!0,enumerable:!1}),w(p.share,a,v,_)}))};let $=e=>{var t,n;let r=B[e];if(!r.treeShaking&&((t=r.shareConfig)==null?void 0:t.import)!==!1)return!1;let i=o(e,(n=r.shareConfig)==null?void 0:n.singleton,r.version,r.scope);return r.treeShaking?P(p.share,i,_)===void 0&&s(p.share,i)===void 0:s(p.share,i)===void 0},Ne=e=>{var t,n;let r=B[e],i=o(e,(t=r.shareConfig)==null?void 0:t.singleton,r.version,r.scope);return(r.treeShaking?P(p.share,i,_)??s(p.share,i):s(p.share,i))===void 0?r.treeShaking||((n=r.shareConfig)==null?void 0:n.import)===!1?!0:typeof O==`function`&&!!O(z[e],e,r,`version-first`):!1},Pe=e=>{let t=!0;for(;t;){t=!1;for(let n of Q){let r=Z.get(n);e.has(r)||(Ae[r]||[]).some(t=>e.has(t))&&(e.add(r),t=!0)}}return e},Fe=Pe(new Set(Q.filter(Ne).map(e=>Z.get(e)))),Ie=Q.filter(e=>!Fe.has(Z.get(e)));var Le=Q.filter(e=>Fe.has(Z.get(e)));await Me(Ie);try{await x(async()=>{await Promise.all(await q.initializeSharing(`default`,{strategy:`version-first`,from:`build`,initScope:n}))})}catch(e){console.error(`[Module Federation]`,e)}oe();let Re=async()=>{for(let t of v)await Promise.all(t.map(async t=>{let n=B[t];n&&n.materialize!==!1&&!n.treeShaking&&await Ee(t,n,e[t],z[t],void 0)}))};ce?b=Re:await Re();try{var ze;let e=(ze=globalThis.__FEDERATION__)==null?void 0:ze.__SHARE__,t=Object.create(null);if(e)for(let[,n]of Object.entries(e))for(let e of h){let r=n==null?void 0:n[e];if(r)for(let[e,n]of Object.entries(r)){let r=B==null?void 0:B[e],i=z[e],a=we.get(e);if(!r||!i||!a||r.treeShaking)continue;let o=t[e]||(t[e]=Object.create(null));for(let[e,t]of Object.entries(n)){if(!t.lib||a.version!==e||!k(t,a.provider))continue;let n=i[e];(t===n||n!=null&&n.from&&t.from===n.from)&&(t===r||r.from&&t.from===r.from||o[e]===void 0&&(o[e]=t))}}}for(let e of v)await Promise.all(e.map(async e=>{let n=t[e];n&&await Ee(e,B[e],n,z[e],we.get(e))}))}catch(e){console.error(`[Module Federation] Failed to bridge external shared modules`,e)}let Be=async()=>{},Ve=async(t,n)=>{var r,i;let a=o(t,(r=n.shareConfig)==null?void 0:r.singleton,n.version,n.scope),c=n.treeShaking?P(p.share,a,_):s(p.share,a);if(((i=n.shareConfig)==null?void 0:i.import)!==!1||c!==void 0||ue(t,n,z[t]))return;let l=e=>{let t=e;for(let e=0;e<5;e++){let e=t==null?void 0:t.default;if(!e||typeof e!=`object`||Object.keys(e).length===0)break;let n=Object.getPrototypeOf(e);if(n!==null&&n!==Object.prototype)break;let r=Object.keys(t).filter(e=>e!=="default").map(e=>t[e]);if(r.length>0&&r.some(e=>e!==void 0))break;t=e}return t},u=e==null?void 0:e[t],d=D(u,t,n,`version-first`)||n,f=E(u,d);if(!f)return;let m=e=>{var t;return e===n||(e==null||(t=e.shareConfig)==null?void 0:t.import)===!1};if(m(d))return;let{version:h}=f,g=u==null?void 0:u[h],v=await Ce(t,n.shareConfig,u,h,g,d,f.registered),y=v==null?void 0:v.selection,b=v==null?void 0:v.provider,x=v==null?void 0:v.resolved;if(!y||m(b)||x===void 0||(n.treeShaking?P(p.share,a,_):s(p.share,a))!==void 0||y.registered&&(u==null?void 0:u[y.version])!==b)return;let S=l(x);if(n.treeShaking){let e=n.treeShaking.providedExports??n.treeShaking.usedExports??[];j(p.share,a,e,S),F(p.share,a,_,S)}else w(p.share,a,S,y.from)},He=[],Ue=new Set;for(let e of Le){let t=B[e],n=Z.get(e);if($(e))try{var We;t.treeShaking?await Be(e,t):((We=t.shareConfig)==null?void 0:We.import)===!1&&await Ve(e,t)}catch(t){console.error(`[Module Federation] Failed to resolve runtime-only shared module "${e}"`,t)}$(e)&&Ue.add(n)}Pe(Ue),He.push(...Le.filter(e=>!Ue.has(Z.get(e)))),await Me(He);let Ge=new Map;return u.loadLazyShares=async t=>{let n=new Set(t);for(let t of v)await Promise.all(t.filter(e=>n.has(e)).map(t=>{let n=B[t];if(!n||!n.lazy||!$(t))return;let r=Ge.get(t);return r||(r=Ee(t,n,e[t],z[t],void 0).then(()=>$(t)?Ve(t,n):void 0),r.catch(()=>Ge.delete(t)),Ge.set(t,r)),r}))},d(q),q}async function N(e){let t=await j();if(!(e in t))throw Error(`[Module Federation] Module ${e} does not exist in container.`);return b&&await b(),p.pendingShareLoads&&await Promise.all(p.pendingShareLoads),t[e]().then(e=>()=>e)}export{N as get,M as init};
1
+ import{t as e}from"./assets/vite-preload-helper-BbbETgeG.js";import{t}from"./assets/dist-BkS8HKl2.js";import{t as n}from"./assets/helpers-ClFTp7rx.js";var r={},i=new Set,a=new Map;function o(e,t){let n=a.get(e);return n||(n=Promise.resolve().then(t).catch(t=>{throw a.delete(e),t}),a.set(e,n)),n}async function s(e){if(typeof document>`u`)return;let t=r[e]||[];await Promise.all(t.map(e=>{let t=new URL(e,import.meta.url).href;return i.has(t)||(i.add(t),document.querySelector(`link[rel="stylesheet"][href="${t}"]`))?Promise.resolve():new Promise((e,n)=>{let r=document.createElement(`link`);r.rel=`stylesheet`,r.href=t,r.onload=()=>e(),r.onerror=()=>n(Error(`[Module Federation] Failed to load CSS asset: ${t}`)),document.head.appendChild(r)})}))}var c={"./Components":async()=>{await s(`./Components`),await Promise.all([]);let t=await o(`./Components`,()=>e(()=>import(`./assets/Components-D7dlXwfS.js`),[],import.meta.url)),n=t&&t.__mf_remote_dependency_pending;n&&typeof n.then==`function`&&await n;let r={};return Object.assign(r,t),Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),r},"./translations":async()=>{await s(`./translations`),await Promise.all([]);let t=await o(`./translations`,()=>e(()=>import(`./assets/translations-DD1c0Wnf.js`),[],import.meta.url)),n=t&&t.__mf_remote_dependency_pending;n&&typeof n.then==`function`&&await n;let r={};return Object.assign(r,t),Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),r}};typeof __VUE_HMR_RUNTIME__>`u`&&(globalThis.__VUE_HMR_RUNTIME__={createRecord(){},rerender(){},reload(){}});var l=`__mf_init__virtual:mf:__mfe_internal__DevicesWidgetTr064Set__mf_owner__212620212104624__mf_v__runtimeInit__mf_v__.js__`,u=globalThis[l];if(!u){let e,t,n=new Promise((n,r)=>{e=n,t=r});u=globalThis[l]={initPromise:n,initResolve:e,initReject:t}}var d=u.initResolve,f=`__mf_module_cache__`;globalThis[f]||={share:{},remote:{}},globalThis[f].share||={},globalThis[f].remote||={};var p=globalThis[f];for(let e of Object.keys(p.share))if(e.startsWith(`default:`)){let t=e.slice(8);p.share[t]===void 0&&(p.share[t]=p.share[e])}else if(!e.includes(`:`)){let t=`default:`+e;p.share[t]===void 0&&(p.share[t]=p.share[e])}var m={},h=Array.isArray(`default`)?`default`:[`default`],g=`default`,_=`DevicesWidgetTr064Set`,v=[[`@iobroker/dm-widgets`]],y,b;async function x(e){for(let t=0;;t++)try{return await e()}catch(e){throw e}}var S=Symbol(`mf.originalSharedProvider`),C={emit:e=>e},w=e=>Array.isArray(e.scope)?e.scope:[e.scope||`default`],T=(e,t)=>{if(t!==`version-first`)return e;let n={};for(let[t,r]of Object.entries(e))n[t]=Object.assign({},r,{[S]:r});return n},E=(e,t)=>{if(!t)return;let n=Object.entries(e||{}),r=n.find(([,e])=>e===t);if(r)return{version:r[0],provider:t,registered:!0};if(typeof t.version==`string`&&t.version)return{version:t.version,provider:t,registered:!1};let i=n.filter(([,e])=>e===t||!!(t.from&&(e==null?void 0:e.from)===t.from));if(i.length===1)return{version:i[0][0],provider:t,registered:!1}},D=(e,t,r,i)=>{var a;if(!e||!r)return;let o=Object.fromEntries(Object.entries(e).filter(([,e])=>{var t;return(e==null||(t=e.shareConfig)==null?void 0:t.import)!==!1}));if(Object.keys(o).length===0)return;let s=w(r),c=T(o,i),l={};for(let e of s)l[e||`default`]={[t]:c};let u=(a=n.getRegisteredShare(l,t,{...r,scope:s,strategy:i},C))==null?void 0:a.shared;return(u==null?void 0:u[S])||u},O=(e,t,n,r)=>{var i;let a=e=>k(e,n),o=Object.fromEntries(Object.entries(e||{}).filter(([,e])=>{var t;return!a(e)&&(e==null||(t=e.shareConfig)==null?void 0:t.import)!==!1}));n!=null&&n.version&&((i=n.shareConfig)==null?void 0:i.import)!==!1&&(o[n.version]||(o[n.version]=n));let s=D(o,t,n,r);return a(s)?void 0:s},k=(e,t)=>e===t||!!(t!=null&&t.from&&(e==null?void 0:e.from)===t.from),A=(e,t,n,r,i,a,o,s,c)=>{var l,u;if(c!==`version-first`||!s)return;let d=t==null||(l=t.options)==null||(l=l.shared)==null?void 0:l[i],f=Array.isArray(d)?d.find(e=>(e==null?void 0:e.version)===a):void 0,p=((s==null?void 0:s.from)===(t==null||(u=t.options)==null?void 0:u.name)?s:void 0)||(k(f,s)?f:t?void 0:s);if(p)return e.some(e=>{var i,a;return e!==t&&(e==null||(i=e.options)==null?void 0:i.name)===(o==null?void 0:o.from)&&(e==null||(a=e.shareScopeMap)==null?void 0:a[r])===n})?p:void 0},ee=(e,t,n,r,i,a,o,s,c)=>{let l=a.registered?A(e,t,n,r,i,a.version,a.provider,s,c):void 0,u=l||o;if(u&&(!a.registered||k(u,s)))return{provider:u,scopeRootProvider:l}};async function te(){return y||=x(()=>e(()=>import(`./assets/_virtual_mf-localSharedImportMap___mfe_internal__DevicesWidgetTr064Set__mf_owner__1-BLwubH36.js`),[],import.meta.url)).catch(e=>{throw y=void 0,e}),y}async function j(){return c}async function M(e={},n=[],r={}){var i,a;let o=(e,t,n,r)=>{let i=(Array.isArray(r)?r[0]:r)||`default`,a=t||!n?e:e+`@`+n,o={canonical:i+`:`+a};return i==="default"&&(o.aliases=[a]),o},s=(e,t)=>{let n=e[t.canonical];if(n!==void 0)return n;let r=t.aliases||[];for(let n of r){if(!Object.prototype.hasOwnProperty.call(e,n))continue;let r=e[n];if(r!==void 0)return e[t.canonical]=r,r}},c=Symbol.for(`module-federation.shared-cache-listeners`),l=Symbol.for(`module-federation.shared-cache-owners`),f=e=>{let t=e[l];return t===void 0&&(t=Object.create(null),Object.defineProperty(e,l,{value:t,enumerable:!1,configurable:!1,writable:!1})),t},y=(e,t)=>{var n;return(n=e[l])==null?void 0:n[t.canonical]},S=e=>{let t=[e,e==null?void 0:e.default];for(let e of t)if(e&&typeof e==`object`){for(let t of[`__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE`,`__TEST_INTERNALS`,`__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED`]){let n=e[t];if(n&&typeof n==`object`)return{internals:n}}if(typeof e.useState==`function`)return{hook:e.useState}}},C=(e,t)=>{if(e===t)return!0;let n=S(e),r=S(t);if(!n||!r)return!1;let i=n.internals,a=r.internals;return i!==void 0||a!==void 0?i!==void 0&&i===a:typeof n.hook==`function`&&n.hook===r.hook},w=(e,t,n,r)=>{var i;let a=s(e,t);if(a!==void 0&&C(a,n))return n;e[t.canonical]=n;let o=t.aliases||[];for(let t of o)Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0});let u=e[l];r===void 0?u&&delete u[t.canonical]:f(e)[t.canonical]=r;let d=(i=e[c])==null?void 0:i[t.canonical];if(d)for(let e of d)e(n);return n},T=Symbol.for(`module-federation.tree-shaking-shared-cache`),A=e=>{let t=e[T];return t===void 0&&(t=Object.create(null),Object.defineProperty(e,T,{value:t,enumerable:!1,configurable:!1,writable:!1})),t},j=(e,t,n,r)=>{if(!Array.isArray(n))return r;let i=[...new Set(n)].sort(),a=A(e),o=a[t.canonical]||=[],s=o.find(e=>e.providedExports.length===i.length&&e.providedExports.every((e,t)=>e===i[t]));return s?s.value=r:o.push({providedExports:i,value:r}),r},M=Symbol.for(`module-federation.tree-shaking-shared-selection-cache`),N=e=>{let t=e[M];return t===void 0&&(t=Object.create(null),Object.defineProperty(e,M,{value:t,enumerable:!1,configurable:!1,writable:!1})),t},P=(e,t,n)=>{var r;let i=s(e,t);return i===void 0?(r=e[M])==null||(r=r[t.canonical])==null?void 0:r[n]:i},F=(e,t,n,r)=>{let i=N(e),a=i[t.canonical]||=Object.create(null);return a[n]=r,r},I=((i=globalThis.__FEDERATION__)==null?void 0:i.__INSTANCES__)||[],L=(a=n.find(e=>e==null?void 0:e.from))==null?void 0:a.from,ne=I.find(t=>{var n,r;return(t==null||(n=t.options)==null?void 0:n.name)===L&&(t==null||(r=t.shareScopeMap)==null?void 0:r.default)===e})||I.find(t=>{var n,r;return(t==null||(n=t.options)==null?void 0:n.name)!==_&&(t==null||(r=t.shareScopeMap)==null?void 0:r.default)===e}),R=Object.create(null),re=e=>{let t=Object.create(null);for(let[n,r]of Object.entries(e||{}))t[n]=Object.assign(Object.create(null),r);return t},ie=(e,t)=>{var n;for(let[i,a]of Object.entries(((n=q.shareScopeMap)==null?void 0:n[e])||{}))for(let[e,n]of Object.entries(a||{})){var r;if(!n||n.get===((r=B[i])==null?void 0:r.get))continue;let a=t[i]||={};a[e]===void 0&&(a[e]=n)}},ae=(e,t)=>{ie(e,t);let n=!ne&&Object.values(t||{}).some(e=>Object.values(e||{}).some(V)),r=n?re(t):t;return R[e]={host:t,runtime:r,isWebpackScope:n},r},oe=()=>{let e=Object.values(R).filter(({isWebpackScope:e})=>e);if(e.length!==0)for(let{host:t,runtime:n}of e)for(let[e,r]of Object.entries(t||{})){let t=n[e]||=Object.create(null);for(let[e,n]of Object.entries(r||{}))t[e]=n}},z=Object.create(null);for(let[t,n]of Object.entries(e)){let e=z[t]=Object.create(null);for(let[t,r]of Object.entries(n))e[t]=Object.assign({},r)}let{usedShared:B,usedRemotes:se}=await te();function V(e){if(typeof(e==null?void 0:e.get)!=`function`)return!1;let t=Function.prototype.toString.call(e.get);return t.includes(`__webpack_require__`)||/\.\s*e\s*\([^)]*\)\s*\.then\s*\(/.test(t)}let ce=Object.values(z).some(e=>Object.values(e||{}).some(V)),le=e=>{let t=e.split(`/`);return e.startsWith(`@`)?t.slice(0,2).join(`/`):t[0]},H=(t,n,r,i)=>{if(typeof O!=`function`)return;let a=le(t),o=!i||a===t?[[t,n]]:[[t,n],[a,B[a]]];for(let[n,i]of o){if(!i)continue;let a=O(r?n===t?r:z[n]:z[n]??e[n],n,i,`version-first`);if(a)return a}},ue=(e,t,n)=>{let r=H(e,t,n,!0);return r&&V(r)&&!r.lib&&!r.loaded?r:void 0};var U=m[g];if(U||=m[g]={from:_},n.indexOf(U)>=0)return;n.push(U);let de=e=>{let t=e;for(let e=0;e<5;e++){let e=t==null?void 0:t.default;if(!e||typeof e!=`object`||Object.keys(e).length===0)break;let n=Object.getPrototypeOf(e);if(n!==null&&n!==Object.prototype)break;let r=Object.keys(t).filter(e=>e!=="default").map(e=>t[e]);if(r.length>0&&r.some(e=>e!==void 0))break;t=e}return t},fe=[],pe=globalThis.window===void 0?await Promise.all([]):[],W=`__mf_vite_runtime_share_load_id__`,me=0,G=new Map,K=new Map,q=t({name:_,remotes:se,shared:B,plugins:[he(),ge(),...fe,...pe],shareStrategy:`version-first`});q.initShareScopeMap(`default`,ae(`default`,e));function he(){return{name:`vite-share-pin-lifecycle-plugin`,resolveShare(e){var t;let n=(t=e.shareInfo)==null?void 0:t[W],r=n===void 0?void 0:K.get(n);if(!r)return e;let i=e.resolver;return e.resolver=(...e)=>(r.pinned.reapply(),i(...e)),r.pinned.reveal(),e}}}function ge(){return{name:`vite-real-name-snapshot-plugin`,afterLoadSnapshot(e){let t=e&&e.remoteSnapshot,n=t&&t.globalName,r=t&&t.version;if(!n||!r||!t.remoteEntry)return e;let i=globalThis.__FEDERATION__&&globalThis.__FEDERATION__.moduleInfo,a=n+`:`+r;return i&&!i[a]&&(i[a]=t),e}}}let _e=q.sharedHandler.hooks.lifecycle.resolveShare;if(!q.__mfKeepAdoptedProviders){var J,ve;q.__mfKeepAdoptedProviders=!0,(J=q.sharedHandler)==null||(J=J.hooks)==null||(J=J.lifecycle)==null||(J=J.afterRegisterShare)==null||(ve=J.on)==null||ve.call(J,e=>{var t,n,r;let{shared:i,previousShared:a,registeredShared:o}=e||{};if((i==null||(t=i.shareConfig)==null?void 0:t.import)!==!1||o!==i||!a||((n=a.shareConfig)==null?void 0:n.import)===!1)return;let s=(r=q.shareScopeMap)==null||(r=r[e.scope])==null?void 0:r[e.pkgName];s&&s[i.version]===i&&(s[i.version]=a)})}let Y=new WeakMap;_e.on(e=>{var t;let n=(t=e.shareInfo)==null?void 0:t[W],r=e.resolver;return typeof r==`function`&&(e.resolver=(...t)=>{var i;let a=r(...t);if((a==null||(i=a.shared)==null||(i=i.shareConfig)==null?void 0:i.import)===!1&&typeof D==`function`&&B[e.pkgName]){var o,s;let t=D((o=e.shareScopeMap)==null||(o=o[e.scope])==null?void 0:o[e.pkgName],e.pkgName,B[e.pkgName],`version-first`);t&&((s=t.shareConfig)==null?void 0:s.import)!==!1&&(a={shared:t,useTreesShaking:a.useTreesShaking})}let c=a==null?void 0:a.shared;return c&&(typeof c==`object`||typeof c==`function`)&&!Y.has(c)&&Y.set(c,{from:c.from}),n!==void 0&&c&&G.set(n,c),a}),e});let ye=(e,t,n,r)=>{if(!e||e[t]!==n)return;let i=Object.assign({},r,{version:r.version??t,scope:r.scope??(n==null?void 0:n.scope)??[`default`],strategy:`loaded-first`}),a=r.from;e[t]=i;let o=()=>n===void 0?e[t]===void 0:e[t]===n;return{provider:i,reveal(){return e[t]===i&&(n===void 0?delete e[t]:e[t]=n,!0)},reapply(){return o()?(e[t]=i,!0):!1},release(s,c=!0){return r.from=a,e[t]===i?c?s?(i.from=a,s&&i.lib&&(i.loaded=!0),r.strategy===void 0?delete i.strategy:i.strategy=r.strategy,!0):(n===void 0?delete e[t]:e[t]=n,!1):(n===void 0?delete e[t]:e[t]=n,!0):!c&&o()}}},be=e=>Object.entries(e||{}).map(([e,t])=>({provider:t,version:e,from:t.from,registered:!0})),xe=(e,t)=>{if(t===void 0)return;let n;for(let r of e){let e=r.provider,i=e.treeShaking||e;if(r.loadedFactory===t||e.lib===t||i.lib===t){if(n)return;n=r}}return n},Se=async(e,t,n)=>{let r=++me;K.set(r,{pinned:n});try{let n=await q.loadShare(e,{customShareInfo:{shareConfig:t,[W]:r}});return{factory:n===!1?void 0:n,selectedProvider:G.get(r)}}finally{G.delete(r),K.delete(r)}},Ce=async(e,t,n,r,i,a,o=!0)=>{let s=a.from,c=ye(n,r,i,a);if(!c)return;let l;try{l=await Se(e,t,c)}catch(e){throw c.release(!1),e}let u=l==null?void 0:l.factory;if(u===void 0){c.release(!1);return}let d=be(n),f=c.provider.treeShaking||c.provider,p=c.provider.lib===u||f.lib===u;if(!o&&p){let e=d.findIndex(e=>e.provider===c.provider);e!==-1&&d.splice(e,1)}!o&&!d.some(e=>e.provider===a)&&d.push({provider:a,version:r,from:s,registered:!1,loadedFactory:p?u:void 0});let m=!o&&l.selectedProvider===c.provider&&p?a:l.selectedProvider;if(m&&!d.some(e=>e.provider===m)){let e=Y.get(m),t=typeof m.version==`string`&&m.version?m.version:r;d.push({provider:m,version:t,from:e?e.from:m.from,registered:(n==null?void 0:n[t])===m,loadedFactory:u})}let h=d.find(e=>e.provider===m)??xe(d,u);if(!c.release(!0,(h==null?void 0:h.provider)===c.provider)||!h)return;let g=Y.get(h.provider);h.from=h.provider===a?s:g?g.from:h.provider.from,g&&(h.provider.from=g.from);let _=typeof u==`function`?u():u,v=await Promise.resolve(_);if(!(h.registered&&(n==null?void 0:n[h.version])!==h.provider))return{provider:h.provider,selection:h,resolved:v}},X=new Set,we=new Map,Te=async(t,n,r)=>{var i;let a=!!((i=n.shareConfig)!=null&&i.singleton);if(!a&&n.canLiveRebind!==!1)try{var c,l;let i=O(r,t,n,`version-first`),u=E(r,i);if(!u||((c=n.shareConfig)==null?void 0:c.import)===!1&&k(i,n)||(i==null||(l=i.shareConfig)==null?void 0:l.import)===!1)return;let{version:d}=u;if(!a&&d!==n.version||!i.lib&&!i.loading&&!(i.loaded&&typeof i.get==`function`))return;let f=o(t,a,n.version,n.scope);if(s(p.share,f)!==void 0)return;let m=e[t],h=m==null?void 0:m[d];if(u.registered&&!k(h,i))return;let g,_=i.lib;if(!_&&V(i)||(!_&&i.loading&&(_=await i.loading),!_&&i.loaded&&typeof i.get==`function`&&(_=await i.get()),!_))return;let v=typeof _==`function`?_():_,y=await Promise.resolve(v),b=u.registered?h:i;g={provider:b,selection:{provider:b,version:d,from:i.from,registered:u.registered},resolved:y};let x=g==null?void 0:g.provider,S=g==null?void 0:g.selection;if(!S)return;let C=g==null?void 0:g.resolved;if(C===void 0||s(p.share,f)!==void 0||S.registered&&(m==null?void 0:m[S.version])!==x)return;w(p.share,f,de(C),S.from),X.add(x)}catch(e){console.error(`[Module Federation] Failed to bridge materialized shared module "`+t+`"`,e)}},Ee=async(t,n,r,i,a)=>{try{var c,l,u,d;let f=o(t,(c=n.shareConfig)==null?void 0:c.singleton,n.version,n.scope),m=s(p.share,f),h=y(p.share,f),g=O(r,t,n,`version-first`),v=g||D(r,t,n,`version-first`)||n,b=E(r,v);if(!b)return;let x=k(v,n),{version:S}=b;if(!((l=n.shareConfig)!=null&&l.singleton)&&S!==n.version)return;let C=i==null?void 0:i[S],T=ee(I,ne,e,`default`,t,b,g,C,`version-first`);if(!T&&!x)return;let{provider:A,scopeRootProvider:te}=T||{provider:v,scopeRootProvider:void 0};if(n.canLiveRebind===!1||((u=n.shareConfig)==null?void 0:u.import)===!1&&k(A,n)||(A==null||(d=A.shareConfig)==null?void 0:d.import)===!1||m!==void 0&&h!==_)return;let j=e[t],M=j==null?void 0:j[S];if(b.registered&&!te&&!k(M,A))return;let N=await Ce(t,n.shareConfig,j,S,M,A,b.registered&&!x),P=N==null?void 0:N.provider,F=N==null?void 0:N.selection;if(!F||k(P,n)||a&&(a.version!==F.version||!k({from:F.from},a.provider))||X.has(P))return;let L=N==null?void 0:N.resolved;if(L===void 0)return;let R=s(p.share,f),re=y(p.share,f);if(R!==void 0&&re!==_||F.registered&&(j==null?void 0:j[F.version])!==P)return;a||we.set(t,{version:F.version,provider:{from:F.from}}),X.add(P);let ie=de(L);w(p.share,f,ie,F.from)}catch(e){console.error(`[Module Federation] Failed to bridge external shared module "`+t+`"`,e)}};for(let e of v)await Promise.all(e.map(async e=>{let t=B[e];t&&t.materialize!==!1&&!t.treeShaking&&await Te(e,t,z[e])}));for(let[e,t]of Object.entries(B)){var De;if(t.treeShaking)continue;let n=o(e,(De=t.shareConfig)==null?void 0:De.singleton,t.version,t.scope);if(s(p.share,n)!==void 0)continue;let r=o(e,!0,t.version,t.scope),i=s(p.share,r);i!==void 0&&w(p.share,n,i,y(p.share,r))}let Oe=[`@iobroker/dm-widgets`],ke=[[`@iobroker/dm-widgets`]],Z=new Map(Oe.map((e,t)=>[e,t])),Ae={},Q=Oe.filter(e=>{var t;return B[e]&&(B[e].materialize!==!1||((t=B[e].shareConfig)==null?void 0:t.import)===!1&&!B[e].lazy)});p.providerInit||=new Map;let je=(e,t)=>{let n=p.providerInit.get(e);if(n)return n;let r=Promise.resolve().then(t);return p.providerInit.set(e,r),r.catch(()=>p.providerInit.delete(e)),r};var Me=async e=>{let t=new Set(e);for(let e of ke)await Promise.all(e.filter(e=>t.has(e)).map(async e=>{var t,n,r;let i=B[e],a=o(e,(t=i.shareConfig)==null?void 0:t.singleton,i.version,i.scope);if(((n=i.shareConfig)==null?void 0:n.import)===!1||i.treeShaking||s(p.share,a)!==void 0)return;let c=o(e,!0,i.version,i.scope),l=s(p.share,c);if(l!==void 0){w(p.share,a,l,y(p.share,c));return}let u=typeof H==`function`?H(e,i):void 0;if(u){var d,f;let t=u.lib;if(!t&&u.loading&&(t=await u.loading),!t&&u.loaded&&typeof u.get==`function`&&(t=await u.get()),t){let e=typeof t==`function`?t():t,n=await Promise.resolve(e);w(p.share,a,(e=>{let t=e;for(let e=0;e<5;e++){let e=t==null?void 0:t.default;if(!e||typeof e!=`object`||Object.keys(e).length===0)break;let n=Object.getPrototypeOf(e);if(n!==null&&n!==Object.prototype)break;let r=Object.keys(t).filter(e=>e!=="default").map(e=>t[e]);if(r.length>0&&r.some(e=>e!==void 0))break;t=e}return t})(n),u.from);return}if(typeof V==`function`&&V(u)&&((d=i.shareConfig)!=null&&d.singleton||((f=E(z[e],u))==null?void 0:f.version)===i.version))return}let m=a.canonical,h=await je(m,async()=>{let e=await i.get(),t=typeof e==`function`?e():e;return Promise.resolve(t)});for(let t of((r=q.options.shared)==null?void 0:r[e])||[])t.get===i.get&&(t.eager=!0);let g=(e=>{let t=e;for(let e=0;e<5;e++){let e=t==null?void 0:t.default;if(!e||typeof e!=`object`||Object.keys(e).length===0)break;let n=Object.getPrototypeOf(e);if(n!==null&&n!==Object.prototype)break;let r=Object.keys(t).filter(e=>e!=="default").map(e=>t[e]);if(r.length>0&&r.some(e=>e!==void 0))break;t=e}return t})(h),v=g===h?{...h}:g;v.__esModule!==!0&&Object.defineProperty(v,"__esModule",{value:!0,enumerable:!1}),w(p.share,a,v,_)}))};let $=e=>{var t,n;let r=B[e];if(!r.treeShaking&&((t=r.shareConfig)==null?void 0:t.import)!==!1)return!1;let i=o(e,(n=r.shareConfig)==null?void 0:n.singleton,r.version,r.scope);return r.treeShaking?P(p.share,i,_)===void 0&&s(p.share,i)===void 0:s(p.share,i)===void 0},Ne=e=>{var t,n;let r=B[e],i=o(e,(t=r.shareConfig)==null?void 0:t.singleton,r.version,r.scope);return(r.treeShaking?P(p.share,i,_)??s(p.share,i):s(p.share,i))===void 0?r.treeShaking||((n=r.shareConfig)==null?void 0:n.import)===!1?!0:typeof O==`function`&&!!O(z[e],e,r,`version-first`):!1},Pe=e=>{let t=!0;for(;t;){t=!1;for(let n of Q){let r=Z.get(n);e.has(r)||(Ae[r]||[]).some(t=>e.has(t))&&(e.add(r),t=!0)}}return e},Fe=Pe(new Set(Q.filter(Ne).map(e=>Z.get(e)))),Ie=Q.filter(e=>!Fe.has(Z.get(e)));var Le=Q.filter(e=>Fe.has(Z.get(e)));await Me(Ie);try{await x(async()=>{await Promise.all(await q.initializeSharing(`default`,{strategy:`version-first`,from:`build`,initScope:n}))})}catch(e){console.error(`[Module Federation]`,e)}oe();let Re=async()=>{for(let t of v)await Promise.all(t.map(async t=>{let n=B[t];n&&n.materialize!==!1&&!n.treeShaking&&await Ee(t,n,e[t],z[t],void 0)}))};ce?b=Re:await Re();try{var ze;let e=(ze=globalThis.__FEDERATION__)==null?void 0:ze.__SHARE__,t=Object.create(null);if(e)for(let[,n]of Object.entries(e))for(let e of h){let r=n==null?void 0:n[e];if(r)for(let[e,n]of Object.entries(r)){let r=B==null?void 0:B[e],i=z[e],a=we.get(e);if(!r||!i||!a||r.treeShaking)continue;let o=t[e]||(t[e]=Object.create(null));for(let[e,t]of Object.entries(n)){if(!t.lib||a.version!==e||!k(t,a.provider))continue;let n=i[e];(t===n||n!=null&&n.from&&t.from===n.from)&&(t===r||r.from&&t.from===r.from||o[e]===void 0&&(o[e]=t))}}}for(let e of v)await Promise.all(e.map(async e=>{let n=t[e];n&&await Ee(e,B[e],n,z[e],we.get(e))}))}catch(e){console.error(`[Module Federation] Failed to bridge external shared modules`,e)}let Be=async()=>{},Ve=async(t,n)=>{var r,i;let a=o(t,(r=n.shareConfig)==null?void 0:r.singleton,n.version,n.scope),c=n.treeShaking?P(p.share,a,_):s(p.share,a);if(((i=n.shareConfig)==null?void 0:i.import)!==!1||c!==void 0||ue(t,n,z[t]))return;let l=e=>{let t=e;for(let e=0;e<5;e++){let e=t==null?void 0:t.default;if(!e||typeof e!=`object`||Object.keys(e).length===0)break;let n=Object.getPrototypeOf(e);if(n!==null&&n!==Object.prototype)break;let r=Object.keys(t).filter(e=>e!=="default").map(e=>t[e]);if(r.length>0&&r.some(e=>e!==void 0))break;t=e}return t},u=e==null?void 0:e[t],d=D(u,t,n,`version-first`)||n,f=E(u,d);if(!f)return;let m=e=>{var t;return e===n||(e==null||(t=e.shareConfig)==null?void 0:t.import)===!1};if(m(d))return;let{version:h}=f,g=u==null?void 0:u[h],v=await Ce(t,n.shareConfig,u,h,g,d,f.registered),y=v==null?void 0:v.selection,b=v==null?void 0:v.provider,x=v==null?void 0:v.resolved;if(!y||m(b)||x===void 0||(n.treeShaking?P(p.share,a,_):s(p.share,a))!==void 0||y.registered&&(u==null?void 0:u[y.version])!==b)return;let S=l(x);if(n.treeShaking){let e=n.treeShaking.providedExports??n.treeShaking.usedExports??[];j(p.share,a,e,S),F(p.share,a,_,S)}else w(p.share,a,S,y.from)},He=[],Ue=new Set;for(let e of Le){let t=B[e],n=Z.get(e);if($(e))try{var We;t.treeShaking?await Be(e,t):((We=t.shareConfig)==null?void 0:We.import)===!1&&await Ve(e,t)}catch(t){console.error(`[Module Federation] Failed to resolve runtime-only shared module "${e}"`,t)}$(e)&&Ue.add(n)}Pe(Ue),He.push(...Le.filter(e=>!Ue.has(Z.get(e)))),await Me(He);let Ge=new Map;return u.loadLazyShares=async t=>{let n=new Set(t);for(let t of v)await Promise.all(t.filter(e=>n.has(e)).map(t=>{let n=B[t];if(!n||!n.lazy||!$(t))return;let r=Ge.get(t);return r||(r=Ee(t,n,e[t],z[t],void 0).then(()=>$(t)?Ve(t,n):void 0),r.catch(()=>Ge.delete(t)),Ge.set(t,r)),r}))},d(q),q}async function N(e){let t=await j();if(!(e in t))throw Error(`[Module Federation] Module ${e} does not exist in container.`);return b&&await b(),p.pendingShareLoads&&await Promise.all(p.pendingShareLoads),t[e]().then(e=>()=>e)}export{N as get,M as init};
2
2
  if (typeof document !== 'undefined' && document.head) {
3
3
  try {
4
4
  for (const __mfWarmupPath of ["assets/_virtual_mf-localSharedImportMap___mfe_internal__DevicesWidgetTr064Set__mf_owner__1-BLwubH36.js","assets/vite-preload-helper-BbbETgeG.js","assets/dist-BkS8HKl2.js","assets/utils-D1AcFl0O.js"]) {
@@ -1 +1 @@
1
- {"id":"DevicesWidgetTr064Set","name":"DevicesWidgetTr064Set","metaData":{"name":"DevicesWidgetTr064Set","type":"app","buildInfo":{"buildVersion":"1.0.0","buildName":"DevicesWidgetTr064Set"},"remoteEntry":{"name":"customDevices.js","path":"","type":"module"},"types":{"path":"","name":""},"globalName":"DevicesWidgetTr064Set","pluginVersion":"1.23.4","publicPath":"auto"},"shared":[{"id":"DevicesWidgetTr064Set:@iobroker/dm-widgets","name":"@iobroker/dm-widgets","version":"2.0.1","singleton":true,"requiredVersion":"*","assets":{"js":{"async":["assets/_virtual_mf___mfe_internal__DevicesWidgetTr064Set__mf_owner__212620212104624__prebuild___mf_0_iobroker_mf_1_dm_mf_2_widgets__prebuild__-CiYX8DhF.js"],"sync":[]},"css":{"async":[],"sync":[]}}}],"remotes":[],"exposes":[{"id":"DevicesWidgetTr064Set:Components","name":"Components","assets":{"js":{"async":["assets/_virtual_mf___mfe_internal__DevicesWidgetTr064Set__mf_owner__212620212104624__loadShare__shared-4SQSrCDF.js"],"sync":["assets/vite-preload-helper-BbbETgeG.js","assets/dist-BkS8HKl2.js","assets/helpers-ClFTp7rx.js","assets/utils-D1AcFl0O.js","assets/_virtual_mf-localSharedImportMap___mfe_internal__DevicesWidgetTr064Set__mf_owner__1-BLwubH36.js","assets/Components-BjwJD5XF.js","assets/react-pcwjPi4V.js"]},"css":{"async":[],"sync":[]}},"path":"./Components"},{"id":"DevicesWidgetTr064Set:translations","name":"translations","assets":{"js":{"async":[],"sync":["assets/vite-preload-helper-BbbETgeG.js","assets/dist-BkS8HKl2.js","assets/helpers-ClFTp7rx.js","assets/utils-D1AcFl0O.js","assets/_virtual_mf-localSharedImportMap___mfe_internal__DevicesWidgetTr064Set__mf_owner__1-BLwubH36.js","assets/translations-DD1c0Wnf.js"]},"css":{"async":[],"sync":[]}},"path":"./translations"}]}
1
+ {"id":"DevicesWidgetTr064Set","name":"DevicesWidgetTr064Set","metaData":{"name":"DevicesWidgetTr064Set","type":"app","buildInfo":{"buildVersion":"1.0.0","buildName":"DevicesWidgetTr064Set"},"remoteEntry":{"name":"customDevices.js","path":"","type":"module"},"types":{"path":"","name":""},"globalName":"DevicesWidgetTr064Set","pluginVersion":"1.23.4","publicPath":"auto"},"shared":[{"id":"DevicesWidgetTr064Set:@iobroker/dm-widgets","name":"@iobroker/dm-widgets","version":"2.0.1","singleton":true,"requiredVersion":"*","assets":{"js":{"async":["assets/_virtual_mf___mfe_internal__DevicesWidgetTr064Set__mf_owner__212620212104624__prebuild___mf_0_iobroker_mf_1_dm_mf_2_widgets__prebuild__-CiYX8DhF.js"],"sync":[]},"css":{"async":[],"sync":[]}}}],"remotes":[],"exposes":[{"id":"DevicesWidgetTr064Set:Components","name":"Components","assets":{"js":{"async":["assets/_virtual_mf___mfe_internal__DevicesWidgetTr064Set__mf_owner__212620212104624__loadShare__shared-4SQSrCDF.js"],"sync":["assets/vite-preload-helper-BbbETgeG.js","assets/dist-BkS8HKl2.js","assets/helpers-ClFTp7rx.js","assets/utils-D1AcFl0O.js","assets/_virtual_mf-localSharedImportMap___mfe_internal__DevicesWidgetTr064Set__mf_owner__1-BLwubH36.js","assets/Components-D7dlXwfS.js","assets/react-pcwjPi4V.js"]},"css":{"async":[],"sync":[]}},"path":"./Components"},{"id":"DevicesWidgetTr064Set:translations","name":"translations","assets":{"js":{"async":[],"sync":["assets/vite-preload-helper-BbbETgeG.js","assets/dist-BkS8HKl2.js","assets/helpers-ClFTp7rx.js","assets/utils-D1AcFl0O.js","assets/_virtual_mf-localSharedImportMap___mfe_internal__DevicesWidgetTr064Set__mf_owner__1-BLwubH36.js","assets/translations-DD1c0Wnf.js"]},"css":{"async":[],"sync":[]}},"path":"./translations"}]}
package/io-package.json CHANGED
@@ -1,8 +1,21 @@
1
1
  {
2
2
  "common": {
3
3
  "name": "tr-064",
4
- "version": "5.2.1",
4
+ "version": "5.2.2",
5
5
  "news": {
6
+ "5.2.2": {
7
+ "en": "Tab \"Persons\": the devices of a person are chosen by name, MAC or IP from the devices of the Fritz!Box (autocomplete), no need to copy MAC addresses from the tab \"Devices\" any more\nNew tab \"Persons\" with the presence of persons, groups, guests and unknown devices below `presence`, like the adapter fb-checkpresence: present, last arrival and departure, present/absent since, the sums of the day and the last comings and goings. A person is watched by MAC or IP addresses\nNew widget \"Person\" for vis-2 and `ioBroker.devices`, the person is selected by name; the vis-2 widget \"Presence\" can list persons",
8
+ "de": "Tab „Personen“: Die Geräte einer Person werden nach Namen, MAC oder IP gewählt! Box (Autocomplete), MAC-Adressen vom Tab „Geräte“ müssen nicht mehr kopiert werden\nNeuer Tab „Personen“ mit Personen, Gruppen, Gästen und unbekannten Geräten unter „Präsenz“, wie der Adapter fb-checkpresence: anwesend, letzte An- und Abreise, anwesend/abwesend seit, die Summe des Tages und der letzten An- und Abreise. Eine Person wird per MAC oder IP beobachtet\nNeues Widget „Person“ für Vis-2 und `ioBroker.Devices`, namentlich ausgewählt; Vis-2 „Präsenz“ kann Personen auflisten",
9
+ "ru": "Вкладка «Лица»: устройства человека выбираются по имени, MAC или IP из устройств Fritz! Коробка (автозаполнение), больше не нужно копировать MAC-адреса из вкладки «Устройства»\nНовая вкладка «Персоны» с присутствием лиц, групп, гостей и неизвестных устройств под надписью «присутствие», как у адаптера fb-checkpresence: настоящее время, последнее прибытие и отъезд, присутствующие/отсутствующие с тех пор, суммы дня и последних приходов и уходов. За человеком наблюдают по MAC-адресам или IP-адресам\nНовый виджет «Человек» для vis-2 и `IOBroker.Devices`, человек выбирается по имени; виджет vis-2 «Присутствие» может перечислять людей",
10
+ "pt": "Aba “Pessoas”: os dispositivos de uma pessoa são escolhidos por nome, MAC ou IP do Fritz! Box (autocomplete), não precisa mais copiar endereços MAC da aba “Devices”\nNova aba “Pessoas” com presença de pessoas, grupos, convidados e dispositivos desconhecidos abaixo de “presença”, como o adaptador fb-checkpresence: presente, última chegada e saída, presente/ausente desde, somas do dia e últimas idas e vindas. Uma pessoa é vigiada por MAC ou IP\nNovo widget “Pessoa” para vis-2 e `IOBroker.devices`; o widget vis-2 “Presença” pode listar pessoas",
11
+ "nl": "Tab „Personen”: de apparaten van een persoon worden op naam, MAC of IP gekozen op basis van de apparaten van de Fritz! Box (automatisch aanvullen), u hoeft MAC-adressen niet meer te kopiëren van het tabblad „Apparaten”\nNieuw tabblad „Personen” met de aanwezigheid van personen, groepen, gasten en onbekende apparaten onder `Aanwezigheid`, zoals de adapter fb-checkpresence: aanwezig, laatste aankomst en vertrek, aanwezig/afwezig sinds, de sommen van de dag en het laatste komen en gaan. Iemand wordt in de gaten gehouden op basis van MAC- of IP-adressen\nNieuwe widget „Person” voor vis-2 en `IOBroker.Devices`, de persoon wordt op naam geselecteerd; de vis-2-widget „Presence” kan personen weergeven",
12
+ "fr": "Onglet « Personnes » : les appareils d'une personne sont choisis par nom, MAC ou IP sur le Fritz ! Box (saisie semi-automatique), plus besoin de copier les adresses MAC depuis l'onglet « Appareils »\nNouvel onglet « Personnes » avec la présence de personnes, de groupes, d'invités et d'appareils inconnus sous « Présence », comme l'adaptateur fb-checkpresence : présent, dernière arrivée et départ, présent/absent depuis, la somme de la journée et les dernières allées et venues. Une personne est surveillée par MAC ou IP\nNouveau widget « Personne » pour vis-2 et « IObroker.Devices », la personne est sélectionnée par son nom ; le widget « Présence » peut lister les personnes",
13
+ "it": "Scheda «Persone»: i dispositivi di una persona sono scelti per nome, MAC o IP dal Fritz! Box (autocomplete), non deve più copiare gli indirizzi MAC dalla scheda «Dispositivi»\nNuova scheda «Persone» con persone, gruppi, ospiti e dispositivi sconosciuti sotto «presenza», come l'adattatore fb-checkpresence: presente, ultimo arrivo e partenza, presente/assente da, somme del giorno e degli ultimi arrivi. Una persona è sorvegliata da MAC o IP\nNuovo widget «Persona» per vis-2 e `IOBroker.devices`, la persona è selezionata per nome; vis-2 «Presenza»",
14
+ "es": "Pestaña «Personas»: los dispositivos de una persona se eligen por nombre, MAC o IP del Fritz! Box (autocompletado), ya no necesita copiar las direcciones MAC de la pestaña «Dispositivos»\nNueva pestaña «Personas» con la presencia de personas, grupos, huéspedes y dispositivos desconocidos debajo de «presencia», como el adaptador fb-checkpresence: regalo, última llegada y salida, presente/ausente desde entonces, las sumas del día y las últimas idas y venidas. Una persona es vigilada por direcciones MAC o IP\nNuevo widget «Persona» para vis-2 e «ioBroker.Devices», la persona se selecciona por su nombre; el widget «Presencia» puede mostrar personas",
15
+ "pl": "Zakładka „Osoby”: urządzenia osoby są wybierane według nazwy, MAC lub IP z urządzeń Fritz! Box (autouzupełnianie), nie trzeba już kopiować adresów MAC z zakładki „Urządzenia”\nNowa zakładka „Osoby” z obecnością osób, grup, gości i nieznanych urządzeń poniżej `obecności`, jak adapter fb-checkattendance: obecny, ostatni przyjazd i wyjazd, obecny/nieobecny od tego czasu, sumy dnia i ostatnich przychodów i wyjazdów. Osoba jest obserwowana przez adresy MAC lub IP\nNowy widget „Osoba” dla vis-2 i `IOBroker.devices`, osoba jest wybierana według nazwy; widżet vis-2 „Obecność” może wyświetlać osoby",
16
+ "uk": "Вкладка «Персони»: пристрої людини вибираються за прізвищем, MAC або IP з пристроїв Fritz! Box (автозаповнення), більше не потрібно копіювати MAC-адреси з вкладки «Пристрої»\nНова вкладка «Персони» з присутністю осіб, груп, гостей та невідомих пристроїв нижче `присутності`, на зразок адаптера fb-checkpresent: присутність, останній прибуття та виїзд, присутній/відсутній з моменту, суми дня та останніх приїздів та відходів. Спостерігається за людиною за MAC або IP-адресами\nНовий віджет «Особа» для vis-2 та `ioBroker.devices`, особа вибирається за іменем; віджет vis-2 «Присутність» може перелічити осіб",
17
+ "zh-cn": "选项卡 “人员”:一个人的设备是按姓名、MAC 或 IP 从 Fritz 的设备中选择的!方框(自动填充),无需再从 “设备” 选项卡中复制 MAC 地址\n新的 “人员” 选项卡,在 “在场” 下方显示人员、团体、访客和未知设备,例如适配器 fb-checkPresence:当下、最后一次到达和离开、此后在场/缺席、当天总和以及最后一次来去去。一个人被 MAC 或 IP 地址监视\nvis-2 和 `iobroker.devices` 的新插件 “人物”,按姓名选择此人;vis-2 控件 “Presence” 可以列出人员"
18
+ },
6
19
  "5.2.1": {
7
20
  "en": "Tab \"Persons\": the devices of a person are chosen by name, MAC or IP from the devices of the Fritz!Box (autocomplete), no need to copy MAC addresses from the tab \"Devices\" any more\nNew tab \"Persons\" with the presence of persons, groups, guests and unknown devices below `presence`, like the adapter fb-checkpresence: present, last arrival and departure, present/absent since, the sums of the day and the last comings and goings. A person is watched by MAC or IP addresses\nNew widget \"Person\" for vis-2 and `ioBroker.devices`, the person is selected by name; the vis-2 widget \"Presence\" can list persons",
8
21
  "de": "Tab „Personen“: Die Geräte einer Person werden nach Namen, MAC oder IP gewählt! Box (Autocomplete), MAC-Adressen vom Tab „Geräte“ müssen nicht mehr kopiert werden\nNeuer Tab „Personen“ mit Personen, Gruppen, Gästen und unbekannten Geräten unter „Präsenz“, wie der Adapter fb-checkpresence: anwesend, letzte An- und Abreise, anwesend/abwesend seit, die Summe des Tages und der letzten An- und Abreise. Eine Person wird per MAC oder IP beobachtet\nNeues Widget „Person“ für Vis-2 und `ioBroker.Devices`, namentlich ausgewählt; Vis-2 „Präsenz“ kann Personen auflisten",
@@ -80,19 +93,6 @@
80
93
  "pl": "Topologia siatki pokazuje siłę sygnału urządzenia WLAN: cztery słupki i wartość w dBm (`rx_rcpi`/`tx_rcpi` z listy siatki), sygnał do szumu i ocenę FRITZ! Samo pole („zbyt daleko od punktu dostępu”, „client_position”) w etykiecie i w nowej kolumnie „Sygnał” tabeli\nUrządzenie, które nie jest już podłączone, pokazuje, kiedy zostało podłączone ostatnio (`last_connected`)\nProducent urządzenia pochodzi z FRITZ! Pole („producent_urządzenia”, które zna z LLDP lub żądania DHCP) i wyszukiwane w rejestrach IEEE tylko wtedy, gdy pole nie zawiera nazwy jednego\nSzybkość transmisji danych topologii siatki została pokazana jako pobieranie i przesyłanie w niewłaściwy sposób dla każdego łącza, którego pierwszym węzłem jest punkt dostępowy - FRITZ! Pole zgłasza `rx`/`tx` z widoku własnego węzła 1, który nie zawsze jest stroną górną\nKliknięcie nieodebranych połączeń kafelków („FRITZ! Box” widget vis-2 i `IOBroker.devices`) pyta, czy licznik jest zresetowany i ustawia `calllists.missed.count` na 0. Licznik należy do adaptera, a nie do FRITZ! Box - liczy każde nieodebrane połączenie od czasu instalacji, w tym pełną listę połączeń, która jest odczytywana przy pierwszym uruchomieniu. Adapter potwierdza teraz pisemny licznik od razu zamiast w następnej ankiecie",
81
94
  "uk": "Топологія сітки показує силу сигналу пристрою WLAN: чотири смуги та значення в дБм (`rx_rcpi`/`tx_rcpi` списку сіток), сигнал до шуму та рейтинг FRITZ! Сама коробка («занадто далеко від точки доступу», `client_position`) у підказці та в новому стовпці «Сигнал» таблиці\nПристрій, який більше не підключений, показує, коли він був підключений останнім (`last_connected`)\nВиробник пристрою взятий з FRITZ! Box (`device_manufacturer`, який він знає з LLDP або запиту DHCP) і шукає в реєстрах IEEE лише в тому випадку, якщо вікно не називає його\nШвидкість передачі даних топології сітки була показана як завантаження та завантаження неправильним шляхом для кожного посилання, першим вузлом якого є точка доступу - FRITZ! Box повідомляє `rx`/`tx` з точки зору власного вузла 1, який не завжди є верхньою стороною\nКлацання на пропущені дзвінки плиток («FRITZ! Box» віджет vis-2 та `ioBroker.devices`) запитує, чи скинуто лічильник, і встановлює `calllists.missed.count` значення 0. Лічильник належить адаптеру, а не до FRITZ! Box - він підраховує кожен пропущений дзвінок з моменту встановлення, включаючи повний список викликів, який читається при першому запуску. Тепер адаптер підтверджує письмовий лічильник відразу, а не на наступному опитуванні",
82
95
  "zh-cn": "网状拓扑显示了 WLAN 设备的信号强度:四根柱线和以 dBm 为单位的值(网格列表中的 `rx_rcpi`/`tx_rcpi`)、信噪比和 FRITZ 的额定值!工具提示和表格的新列 “信号” 中的方框本身(“离接入点太远”,“client_position”)\n不再连接的设备会显示其上次连接的时间(`last_connected`)\n设备的制造商取自 FRITZ!Box(“device_manufacturer”,它从 LLDP 或 DHCP 请求中得知),只有当盒子没有命名时才会在 IEEE 注册表中查找\n网状拓扑的数据速率显示为每个以接入点为接入点的链路——FRITZ!Box 从自己的节点 1 的角度报告 `rx`/`tx`,该节点并不总是上游端\n点击方块的未接来电(“FRITZ!vis-2 和 `iobroker.devices` 的 Box” 控件)询问计数器是否已重置并将 “calllists.missed.count” 设置为 0。计数器属于适配器,而不是 FRITZ!Box-它计算自安装以来所有未接来电,包括第一次启动时读取的完整通话清单。现在,适配器会立即确认写入计数器,而不是在下次轮询时确认"
83
- },
84
- "5.1.1": {
85
- "en": "The mesh topology shows the manufacturer of a device below its name. It is resolved from the MAC address with the registries of the IEEE, which the adapter brings with it - no request leaves the network. A device with a randomized (locally administered) address, as many phones use it, is marked as such. The manufacturer can be switched off in the toolbar and in the attributes of the vis-2 widget\nA device can be renamed in the mesh topology: a click on its name asks for the new name and writes it into the FRITZ!Box (`X_AVM-DE_SetHostNameByMACAddress`), which uses it everywhere. A firmware without that action says so. Note: the objects below `devices` follow the name of the box, as long as the option \"Use the configured names\" is switched off\nNew message `setHostName` (`sendTo('tr-064.0', 'setHostName', { mac, name })`) which renames a device in the FRITZ!Box",
86
- "de": "Die Mesh-Topologie zeigt den Gerätehersteller unter dem Namen. Es wird von der MAC-Adresse mit den IEEE-Registern gelöst, die der Adapter mitbringt — keine Anfrage verlässt das Netzwerk. Ein Gerät mit zufälliger (lokal verwalteter) Adresse, so viele Telefone es verwenden, ist so markiert. Der Hersteller kann in der Toolbar und in den Attributen des Vis-2-Widgets abgeschaltet werden\nEin Gerät kann in der Mesh-Topologie umbenannt werden: Ein Klick fragt nach dem Namen und schreibt ihn in FRITZ! Box (`x_AVM-DE_SetHostNameByMacAddress`), die es überall nutzt. Eine Firmware ohne Aktion sagt es. Hinweis: Die Objekte unter „Geräte“ folgen dem Namen der Box, solange die Option „Namen verwenden“ ausgeschaltet ist\nNeue Nachricht `setHostName` (`sendTo ('tr-064.0', 'setHostName', {mac, name}) `)`), die ein Gerät in FRITZ umbenennt! Kiste",
87
- "ru": "Топология сетки показывает производителя устройства под его именем. Проблема решается по MAC-адресу, содержащемуся в реестрах IEEE, который поставляется с адаптером — ни один запрос не покидает сеть. Устройство с рандомизированным (локально вводимым) адресом, используемым многими телефонами, помечается как таковое. Имя производителя можно отключить на панели инструментов и в атрибутах виджета vis-2\nУстройство можно переименовать в сетчатой топологии: щелчок по его имени запрашивает новое имя и записывает его в FRITZ! Ящик (`x_AVM-de_SethostNameByMacAddress`), который использует его повсеместно. Прошивка без этого действия говорит об этом. Примечание: объекты под заголовком «устройства» соответствуют названию блока, если опция «Использовать настроенные имена» выключена\nНовое сообщение `setHostName` (`sendTo ('tr-064.0', 'setHostName', {mac, name}) `), которое переименовывает устройство в FRITZ! Коробка",
88
- "pt": "A malha mostra o fabricante do dispositivo abaixo do nome. É resolvido a partir do endereço MAC com os registros do IEEE, que o adaptador traz - nenhuma solicitação sai da rede. Um dispositivo com endereço aleatório (administrado localmente) é marcado como tal. O fabricante pode ser desligado na barra e nos atributos do widget vis-2\nUm dispositivo pode ser renomeado na topologia de malha: clique no nome e o grava no FRITZ! Box (`x_AVM-DE_SetHostNameByMACAddress`), que o usa em todo lugar. Um firmware sem essa ação diz isso. Nota: os objetos abaixo de `devices` seguem o nome da caixa, mas a opção “Usar os nomes configurados” está desligada\nNova mensagem `setHostName` (`sendTo ('tr-064.0', 'setHostName', {mac, name}) `) que renomeia um dispositivo no FRITZ! Box",
89
- "nl": "De mesh-topologie toont de fabrikant van een apparaat onder de naam. Het wordt opgelost op basis van het MAC-adres met de registers van de IEEE, die de adapter meeneemt - geen enkel verzoek verlaat het netwerk. Een apparaat met een willekeurig (lokaal beheerd) adres, zoals veel telefoons dat gebruiken, is als zodanig gemarkeerd. De fabrikant kan worden uitgeschakeld in de werkbalk en in de attributen van de vis-2-widget\nEen apparaat kan worden hernoemd in de mesh-topologie: als u op de naam klikt, wordt om de nieuwe naam gevraagd en die wordt naar de FRITZ geschreven! Box (`X_AVM-de_SetHostNameByMacAddress`), die het overal gebruikt. Een firmware zonder die actie zegt dat. Opmerking: de objecten onder `apparaten` volgen de naam van het vakje, zolang de optie „Gebruik de geconfigureerde namen” is uitgeschakeld\nNieuw bericht `SetHostName` (`SendTo ('tr-064.0', 'setHostName', {mac, name}) `) dat een apparaat hernoemt in de FRITZ! Doos",
90
- "fr": "La topologie maillée indique le fabricant d'un appareil sous son nom. Il est résolu à partir de l'adresse MAC des registres de l'IEEE, fournie par l'adaptateur. Aucune demande ne quitte le réseau. Un appareil dont l'adresse est aléatoire (locale), utilisée sur de nombreux téléphones, est marqué comme tel. Le fabricant peut être désactivé dans la barre d'outils et dans les attributs du widget vis-2\nUn appareil peut être renommé selon la topologie maillée : il suffit de cliquer sur son nom et de l'inscrire dans FRITZ ! Box (`X_AVM-DE_SetHostNameByMacAddress`), qui l'utilise partout. Un firmware sans cette action le dit. Remarque : les objets sous « appareils » suivent le nom de la box, tant que l'option « Utiliser les noms configurés » est désactivée\nNouveau message `setHostName` (`SendTo ('tr-064.0', 'setHostName', {mac, name}) `) qui renomme un appareil sur FRITZ ! Box",
91
- "it": "La topologia mesh mostra il produttore del dispositivo sotto il nome. È risolto dall'indirizzo MAC con i registri dell'IEEE, forniti dall'adattatore: nessuna richiesta esce dalla rete. Un dispositivo con indirizzo casuale (locale), usato da molti telefoni, è contrassegnato come tale. Il produttore può essere disattivato nella toolbar e negli attributi del widget vis-2\nUn dispositivo può essere rinominato in topologia mesh: basta un clic sul nome e lo scrive nel FRITZ! Box (`x_AVM-DE_setHostNameByMacAddress`), che lo usa ovunque. Un firmware senza tale azione lo dice. Nota: gli oggetti sotto `dispositivi` seguono il nome del box, purché l'opzione «Usa i nomi configurati» sia disattivata\nNuovo messaggio `setHostName` (`sendTo ('tr-064.0', 'setHostName', {mac, name}) `) che rinomina un dispositivo nel FRITZ! Box",
92
- "es": "La topología de malla muestra el fabricante del dispositivo bajo su nombre. Se resuelve desde la dirección MAC con los registros del IEEE que trae consigo el adaptador; ninguna solicitud sale de la red. Un dispositivo con una dirección aleatoria (local), como la usan muchos teléfonos, está marcado como tal. El fabricante se puede desactivar en la barra de herramientas y en los atributos del widget vis-2\nSe puede cambiar el nombre de un dispositivo en malla: al hacer clic en su nombre, aparece el nuevo y lo escribe en el FRITZ. Box (`x_AVM-DE_SetHostNameByMacAddress`), que la usa en todas partes. Un firmware sin esa acción lo dice. Nota: Los objetos de «dispositivos» siguen al nombre de la caja mientras la opción «Usar los nombres configurados» esté desactivada\nNuevo mensaje `setHostName` (`sendTo ('tr-064.0', 'setHostName', {mac, name}) `) que cambia el nombre de un dispositivo en el FRITZ! Caja",
93
- "pl": "Topologia siatki pokazuje producenta urządzenia poniżej jego nazwy. Rozwiązuje się go z adresu MAC za pomocą rejestrów IEEE, które adapter przenosi ze sobą - żadne żądanie nie opuszcza sieci. Urządzenie z losowym (lokalnie administrowanym) adresem, ponieważ korzysta z niego wiele telefonów, jest oznaczone jako takie. Producent można wyłączyć na pasku narzędzi i w atrybutach widżetu vis-2\nNazwa urządzenia może zostać zmieniona w topologii siatki: kliknięcie jego nazwy prosi o nową nazwę i zapisuje ją do FRITZ! Box (`x_avm-de_setHostNameByMacAddress`), który używa go wszędzie. Oprogramowanie układowe bez tej akcji tak mówi. Uwaga: obiekty poniżej `urządzenia' podążają za nazwą pola, o ile opcja „Użyj skonfigurowanych nazw” jest wyłączona\nNowy komunikat `SetHostName` (`sendTo ('tr-064.0', 'setHostName', {mac, name}) `), który zmienia nazwę urządzenia w FRITZ! Pudełko",
94
- "uk": "Топологія сітки показує виробника пристрою під його назвою. Він вирішується з MAC-адреси з реєстрами IEEE, які адаптер приносить з собою - жоден запит не виходить з мережі. Пристрій з рандомізованою (локально адміністрованою) адресою, оскільки ним користується багато телефонів, позначається як такий. Виробника можна відключити на панелі інструментів і в атрибутах віджета vis-2\nПристрій можна перейменувати в топології сітки: клацання на його ім'я запитує нове ім'я та записує його в FRITZ! Box (`x_AVM-de_setHostNameByMacAddress`), який використовує його скрізь. Прошивка без цієї дії говорить так. Примітка: об'єкти під `devices` слідують за назвою вікна, якщо опція «Використовувати налаштовані імена» вимкнена\nНове повідомлення `setHostName` (`SendTo ('tr-064.0', 'setHostName', {mac, name}) `), яке перейменує пристрій у програмі FRITZ! Коробка",
95
- "zh-cn": "网状拓扑在其名称下方显示设备的制造商。它是从适配器自带的 IEEE 注册表的 MAC 地址解析出来的,任何请求都不会离开网络。带有随机(本地管理)地址的设备,正如许多手机所使用的那样,它会被标记为这样。可以在工具栏和 vis-2 控件的属性中关闭制造商\n可以在网状拓扑中重命名设备:点击其名称会要求输入新名称并将其写入 FRITZ!Box (`x_avm-de_setHostNameByMacAddress`),它到处都在使用它。没有该操作的固件就是这样说的。注意:只要关闭 “使用配置的名称” 选项,“设备” 下方的对象就会跟随方框的名称\n新消息 `setHostName`(`sendTo('tr-064.0','setHostName',{mac,name})`),它在 FRITZ 中重命名了设备!盒子"
96
96
  }
97
97
  },
98
98
  "titleLang": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "iobroker.tr-064",
3
- "version": "5.2.1",
3
+ "version": "5.2.2",
4
4
  "description": "ioBroker tr-064 Adapter",
5
5
  "author": "soef <soef@gmx.net>",
6
6
  "contributors": [
@@ -1,4 +0,0 @@
1
- import{a as e,i as t,n,o as r,r as i,s as a}from"./react-pcwjPi4V.js";import{a as o,i as s,n as c,o as l,r as u,t as d}from"./_virtual_mf___mfe_internal__DevicesWidgetTr064Set__mf_owner__212620212104624__loadShare__shared-4SQSrCDF.js";var f=u==null?void 0:u.alpha;function p(e,t){try{return f(e,t)}catch{return`color-mix(in srgb, ${e} ${Math.round(t*100)}%, transparent)`}}function m(e){e.stopPropagation()}var h=(e,t)=>`data:image/svg+xml,${encodeURIComponent(`<svg xmlns="http://www.w3.org/2000/svg" width="${e}" height="${t}" viewBox="0 0 ${e} ${t}"><rect x="1" y="1" width="${e-2}" height="${t-2}" rx="3" fill="none" stroke="currentColor" stroke-width="2"/></svg>`)}`,g=[{value:`1x1`,label:`1×1`,icon:h(18,18)},{value:`2x1`,label:`2×1`,icon:h(32,18)},{value:`2x0.5`,label:`2×½`,icon:h(32,12)},{value:`2x2`,label:`2×2`,icon:h(32,32)}];function _(e,t){switch(t){case`2x0.5`:return l.getStyleWide(e);case`2x1`:return l.getStyleWideTall(e);case`2x2`:{let t=l.getStyleHuge;return t?t(e):{...l.getStyleCompact(e),gridColumn:`span 2`,gridRow:`span 2`}}default:return l.getStyleCompact(e)}}var{Alert:v,Box:y,Button:b,Checkbox:x,CircularProgress:S,Dialog:C,DialogActions:ee,DialogContent:te,DialogTitle:ne,Divider:re,FormControlLabel:ie,IconButton:ae,SvgIcon:oe,Table:w,TableBody:se,TableCell:T,TableContainer:ce,TableHead:E,TableRow:D,TextField:O,ThemeProvider:le,ToggleButton:ue,ToggleButtonGroup:de,Tooltip:fe,Typography:k,alpha:pe,createTheme:me,styled:he,useMediaQuery:A,useTheme:ge}=r(`@mui/material`),{AccountTree:_e,AcUnit:ve,Blinds:ye,Close:be,Computer:xe,DeveloperBoard:Se,DevicesOther:Ce,Doorbell:we,Edit:Te,Lan:Ee,Lightbulb:De,Lock:Oe,Monitor:ke,Phone:Ae,PhoneInTalk:je,Power:Me,Print:Ne,Refresh:Pe,Router:Fe,Sensors:Ie,Smartphone:Le,SmartToy:Re,Speaker:ze,SportsEsports:Be,Storage:Ve,TableRows:He,Tablet:Ue,Thermostat:We,TouchApp:Ge,Tv:Ke,Videocam:qe,Watch:Je}=r(`@mui/icons-material`);function Ye(e){if(!e)return`other`;if(e.band)return e.band;let t=(e.interface||``).toUpperCase();return/(^|:)2(G|,4|\.4)/.test(t)?`2.4`:/(^|:)5G/.test(t)?`5`:/(^|:)6G/.test(t)?`6`:(e.type||``).toUpperCase()===`LAN`||t.startsWith(`LAN`)||t.startsWith(`ETH`)?`LAN`:`other`}function Xe(e){return!!e&&(e.state||``).toUpperCase()===`CONNECTED`}function Ze(e,t){return e?!Xe(e)&&Xe(t)?t:e:t}function Qe(e){return e.configured||e.name||e.mac||e.uid}function $e(e,t){return!!e.node.configured==!!t.node.configured?e.connected===t.connected?Qe(e.node).localeCompare(Qe(t.node)):e.connected?-1:1:e.node.configured?-1:1}function et(e){return{...e,from:e.to,to:e.from,curDown:e.curUp,curUp:e.curDown,maxDown:e.maxUp,maxUp:e.maxDown,rcpiFrom:e.rcpiTo,rcpiTo:e.rcpiFrom,rsniFrom:e.rsniTo,rsniTo:e.rsniFrom}}function tt(e){return(e==null?void 0:e.rcpiTo)??(e==null?void 0:e.rcpiFrom)}function nt(e){return e>=-60?4:e>=-70?3:e>=-80?2:1}function rt(e,t){let n=(e==null?void 0:e.nodes)||[],r=(e==null?void 0:e.links)||[],i=new Map;n.forEach(e=>i.set(e.uid,e));let a=e=>{var t;let n=(t=i.get(e))==null?void 0:t.role;return!!n&&n!==`client`},o=new Map,s=new Map;for(let e of r)i.has(e.from)&&i.has(e.to)&&e.from!==e.to&&(a(e.from)&&a(e.to)?o.set(e.to,Ze(o.get(e.to),e)):a(e.from)?s.set(e.to,Ze(s.get(e.to),e)):a(e.to)&&s.set(e.from,Ze(s.get(e.from),et(e))));let c=n.filter(e=>e.role!==`client`);c.forEach(e=>e.role===`master`&&o.delete(e.uid));let l=new Map;c.forEach(e=>l.set(e.uid,{node:e,uplink:o.get(e.uid),clients:[],children:[]}));let u=0,d=[],f=[];for(let e of n){var p;if(e.role!==`client`)continue;u++;let n=s.get(e.uid),r=Xe(n);if(t.onlyConfigured&&!e.configured||!r&&!t.showDisconnected&&!e.configured)continue;let i={node:e,link:n,connected:r},a=n?l.get(n.from):void 0;a?a.clients.push(i):d.push(i);let o=n?Ye(n):``;f.push({uid:e.uid,name:Qe(e),hostName:e.name,vendor:e.vendor,randomMac:e.randomMac,configured:!!e.configured,accessPoint:(a==null||(p=a.node)==null?void 0:p.name)||``,kind:o,type:(n==null?void 0:n.type)||``,connected:r,curDown:n==null?void 0:n.curDown,curUp:n==null?void 0:n.curUp,rcpi:tt(n),position:e.position,deviceClass:e.deviceClass,lastConnected:r||n==null?void 0:n.lastConnected,mac:e.mac,ip:e.ip})}l.forEach(e=>e.clients.sort($e)),d.sort($e),f.sort((e,t)=>e.configured===t.configured?e.connected===t.connected?e.name.localeCompare(t.name):e.connected?-1:1:e.configured?-1:1);let m=[...c].sort((e,t)=>{let n=e=>e.role===`master`?0:e.role===`slave`?1:2;return n(e)-n(t)||e.name.localeCompare(t.name)}),h=new Set,g=[],_=e=>{h.add(e.node.uid);for(let n of m){var t;let r=l.get(n.uid);!h.has(n.uid)&&((t=r.uplink)==null?void 0:t.from)===e.node.uid&&(e.children.push(r),_(r))}};for(let e of m){let t=l.get(e.uid),n=t.uplink&&l.get(t.uplink.from);!h.has(e.uid)&&(!n||e.role===`master`)&&(g.push(t),_(t))}for(let e of m)if(!h.has(e.uid)){let t=l.get(e.uid);g.push(t),_(t)}return{roots:g,unassigned:d,rows:f,total:u}}function it(e,t){return t&&at(e)?56:40}function at(e){return e.clients.some(e=>e.connected&&tt(e.link)!==void 0)}function ot(e){return e<=8?1:e<=20?2:e<=48?3:4}function st(e,t,n){let r=Math.ceil(e/t);return 60+(e?r*(n+6)-6+10:0)}function ct(e,t=!1){let n=[],r=[],i=new Map,a=e=>{let n=e.clients.length,r=ot(n);return{w:Math.max(240,r*340+(r-1)*6+20),h:st(n,r,it(e,t)),columns:r}},o=e=>{let t=a(e).w,n=e.children.reduce((e,t)=>e+o(t),0),r=Math.max(t,n+32*Math.max(0,e.children.length-1));return i.set(e,r),r},s=0,c=(e,o,l)=>{let u=a(e),d=i.get(e),f={view:e,x:o+(d-u.w)/2,y:l,w:u.w,h:u.h,columns:u.columns,chipW:340,chipH:it(e,t)};n.push(f),s=Math.max(s,l+u.h);let p=o+(d-(e.children.reduce((e,t)=>e+i.get(t),0)+32*Math.max(0,e.children.length-1)))/2;for(let t of e.children){let e=c(t,p,l+u.h+76);if(t.uplink){let n=f.x+f.w/2,i=f.y+f.h,a=e.x+e.w/2,o=e.y,s=i+(o-i)/2;r.push({link:t.uplink,d:`M ${n} ${i} V ${s} H ${a} V ${o}`,labelX:a+6,labelY:o-10})}p+=i.get(t)+32}return f},l=16;for(let t of e)o(t),c(t,l,16),l+=i.get(t)+64;return{kind:`tree`,cards:n,edges:r,width:Math.max(l-64+16,0),height:s+16}}function lt(e,t,n=!1){let r=[],i=[],a=8,o=(e,s)=>{let c=8+s*22,l=Math.max(232,t-8-c),u=l-20,d=e.clients.length,f=Math.max(1,Math.min(d||1,Math.floor((u+6)/218))),p=Math.min(420,(u-(f-1)*6)/f),m=it(e,n),h={view:e,x:c,y:a,w:l,h:st(d,f,m),columns:f,chipW:p,chipH:m};r.push(h),a+=h.h+30;let g=h.x+11,_=h.y+h.h;for(let t of e.children){let e=o(t,s+1);if(t.uplink){let n=e.y+24;i.push({link:t.uplink,d:`M ${g} ${_} V ${n} H ${e.x}`,labelX:e.x+4,labelY:e.y-8}),_=n}}return h};for(let t of e)o(t,0);return{kind:`stack`,cards:r,edges:i,width:t,height:Math.max(a-30+8,0)}}function ut(e,t,n=!1){let r=ct(e,n);return r.width<=t?r:lt(e,t,n)}function j(e,t,n=!1){return Math.max(3,Math.floor(e/(t*(n?.62:.56))))}function M(e,t){return e.length>t?`${e.substring(0,Math.max(1,t-1))}…`:e}function N(e){if(!e)return`–`;let t=e/1e3;return t>=10?Math.round(t).toString():t.toFixed(1)}var dt=a((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.fragment`);function r(e,n,r){var i=null;if(r!==void 0&&(i=``+r),n.key!==void 0&&(i=``+n.key),`key`in n)for(var a in r={},n)a!==`key`&&(r[a]=n[a]);else r=n;return n=r.ref,{$$typeof:t,type:e,key:i,ref:n===void 0?null:n,props:r}}e.Fragment=n,e.jsx=r,e.jsxs=r})),P=a(((e,t)=>{t.exports=dt()}))(),ft={COMPUTER:xe,STORAGE:Ve,SMARTPHONE:Le,TABLET:Ue,GAMING_DEVICE:Be,SET_TOP_BOX:Ke,PRINTER:Ne,NETWORK_SWITCH:Ee,SPEAKER:ze,ROBOT:Re,PHONE:Ae,IP_PHONE:je,CIRCUIT_BOARD:Se,CAMERA:qe,DOOR_LOCK:Oe,DOOR_BELL:we,SHUTTER:ye,AIR_CONDITIONER:ve,LAMP:De,THERMOSTAT:We,BUTTON:Ge,SOCKET:Me,SENSOR:Ie,MONITOR:ke,SMART_WATCH:Je,ROUTER:Fe};function pt(e){return e&&ft[e]||Ce}function mt(e){let t=pt(e.deviceClass);return(0,P.jsx)(t,{x:e.x,y:e.y,width:e.size,height:e.size,sx:{width:e.size,height:e.size,color:e.color}})}function F(e){"@babel/helpers - typeof";return F=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},F(e)}function ht(e,t){if(F(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(F(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function gt(e){var t=ht(e,`string`);return F(t)==`symbol`?t:t+``}function I(e,t,n){return(t=gt(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var _t=`not alive`,vt=`not connected`,yt=`not supported`,L=`timeout`;async function bt(e,t,n=2e4){try{let r=await e.getState(`system.adapter.${t}.alive`);if(!(r!=null&&r.val))return{error:_t,nodes:[],links:[]};let i,a=new Promise(e=>{i=setTimeout(()=>e(L),n)}),o=e.sendTo(t,`mesh`,{}),s=await Promise.race([o,a]);return clearTimeout(i),s===`timeout`||!s||typeof s!=`object`?{error:L,nodes:[],links:[]}:{error:s.error,ts:s.ts,nodes:Array.isArray(s.nodes)?s.nodes:[],links:Array.isArray(s.links)?s.links:[],canRename:!!s.canRename}}catch(e){return{error:(e==null?void 0:e.message)||String(e),nodes:[],links:[]}}}async function xt(e,t,n,r,i=2e4){try{let a=await e.getState(`system.adapter.${t}.alive`);if(!(a!=null&&a.val))return _t;let o,s=new Promise(e=>{o=setTimeout(()=>e(L),i)}),c=e.sendTo(t,`setHostName`,{mac:n,name:r}),l=await Promise.race([c,s]);return clearTimeout(o),l===`timeout`||!l||typeof l!=`object`?L:l.error||void 0}catch(e){return(e==null?void 0:e.message)||String(e)}}var St=class{constructor(e){I(this,`options`,void 0),I(this,`timer`,null),I(this,`running`,!1),I(this,`stopped`,!0),I(this,`current`,{data:null,loading:!1,error:null}),this.options=e}get state(){return this.current}start(){this.stop(),this.stopped=!1,this.refresh();let e=this.options.interval??30;e>0&&(this.timer=setInterval(()=>void this.refresh(),e*1e3))}stop(){this.stopped=!0,this.timer&&=(clearInterval(this.timer),null)}async refresh(){if(this.running||this.stopped)return;this.running=!0,this.update({loading:!0});let e=await bt(this.options.socket,this.options.instanceId,this.options.timeout);this.running=!1,!this.stopped&&(e.error?e.error===`not alive`?this.update({data:null,loading:!1,error:e.error}):this.update({loading:!1,error:e.error}):this.update({data:e,loading:!1,error:null}))}async rename(e,t){let n=await xt(this.options.socket,this.options.instanceId,e,t,this.options.timeout);return!n&&!this.stopped&&await this.refresh(),n}update(e){this.current={...this.current,...e},this.stopped||this.options.onChange(this.current)}},R={2.4:`#f59e0b`,5:`#3b82f6`,6:`#8b5cf6`,LAN:`#10b981`,other:`#9ca3af`},Ct=13,wt=26,Tt=16,Et=63,Dt=600,Ot=63,kt=760,At=480;function jt(e){let t={onlyConfigured:!1,showDisconnected:!1,showVendor:!0,viewMode:`graph`};try{let n=JSON.parse(window.localStorage.getItem(e)||`{}`);t.onlyConfigured=!!n.onlyConfigured,t.showDisconnected=!!n.showDisconnected,t.showVendor=n.showVendor!==!1,t.viewMode=n.viewMode===`table`?`table`:`graph`}catch{}return t}function Mt(e,t){try{window.localStorage.setItem(e,JSON.stringify(t))}catch{}}function z(e,t){return e.vendor||(e.randomMac?t(`tr064_randomMac`):``)}function B(e){switch(e){case`2.4`:case`5`:case`6`:return`${e} GHz`;case`LAN`:return`LAN`;default:return``}}function Nt(e,t){switch(e){case _t:return{severity:`info`,text:t(`tr064_startInstance`)};case vt:return{severity:`warning`,text:t(`tr064_notConnected`)};case yt:return{severity:`warning`,text:t(`tr064_notSupported`)};case L:return{severity:`warning`,text:t(`tr064_timeout`)};default:return{severity:`warning`,text:t(`tr064_error`,e)}}}function Pt(e){return e.connected&&(e.curDown||e.curUp)?`↓ ${N(e.curDown)} / ↑ ${N(e.curUp)}`:``}var Ft=`#ef4444`;function It(e,t,n){return nt(t)===1||n===`too_far`?Ft:R[e||`other`]}function Lt(e){let t=nt(e.rcpi);return(0,P.jsx)(`g`,{transform:`translate(${e.x}, ${e.y})`,children:[0,1,2,3].map(n=>{let r=3+n*2.5;return(0,P.jsx)(`rect`,{x:n*3.3,y:-r,width:2.4,height:r,rx:.8,fill:e.color,opacity:n<t?1:.22},n)})})}function Rt(e){return e===void 0?``:`${e} dBm`}function zt(e,t){return e?t(`tr064_lastSeen`,new Date(e).toLocaleString()):``}function Bt(e,t,n){let r=[];return((e==null?void 0:e.rcpiTo)!==void 0||(e==null?void 0:e.rcpiFrom)!==void 0)&&r.push(n(`tr064_signalTooltip`,e.rcpiTo===void 0?`–`:String(e.rcpiTo),e.rcpiFrom===void 0?`–`:String(e.rcpiFrom))),((e==null?void 0:e.rsniTo)!==void 0||(e==null?void 0:e.rsniFrom)!==void 0)&&r.push(n(`tr064_noiseTooltip`,e.rsniTo===void 0?`–`:String(e.rsniTo),e.rsniFrom===void 0?`–`:String(e.rsniFrom))),(t===`too_far`||t===`too_close`)&&r.push(n(`tr064_position_${t}`)),r}function Vt(e){return(0,P.jsx)(y,{component:`span`,sx:{display:`inline-block`,flexShrink:0,width:10,height:10,borderRadius:`2px`,backgroundColor:R[e.kind]}})}function Ht(){return(0,P.jsx)(y,{sx:{display:`flex`,gap:1.5,alignItems:`center`,flexWrap:`wrap`},children:[`2.4`,`5`,`6`,`LAN`].map(e=>(0,P.jsxs)(y,{sx:{display:`flex`,alignItems:`center`,gap:.5},children:[(0,P.jsx)(Vt,{kind:e}),(0,P.jsx)(k,{variant:`caption`,children:B(e)})]},e))})}function Ut(e,t,n,r){var i;let a=Ye(e.link),o=((i=e.link.state)==null?void 0:i.toUpperCase())===`CONNECTED`,s=[B(a)||e.link.type,o&&e.link.curDown?`${N(e.link.curDown)} Mbit/s`:``].filter(Boolean).join(` · `),c=[`${e.link.interface||e.link.type} - ${r(o?`tr064_connected`:`tr064_disconnected`)}`,e.link.curDown||e.link.curUp?r(`tr064_rateTooltip`,N(e.link.curDown),N(e.link.curUp)):``,...Bt(e.link,void 0,r),o?``:zt(e.link.lastConnected,r)].filter(Boolean);return(0,P.jsxs)(`g`,{children:[(0,P.jsx)(`title`,{children:c.join(`
2
- `)}),(0,P.jsx)(`path`,{d:e.d,fill:`none`,stroke:R[a],strokeWidth:2.5,strokeDasharray:o?void 0:`6 4`}),(0,P.jsx)(`text`,{x:e.labelX,y:e.labelY,fontSize:11,fill:n.palette.text.secondary,children:s})]},`edge-${t}`)}function Wt(e,t,n,r){let i=t.palette,a=e.view.node,o=a?a.name||a.mac:n(`tr064_notAssigned`),s=a?n(`tr064_role_${a.role}`):``,c=a!=null&&a.model&&a.model!==a.name?a.model:``,l=a&&r.showVendor?z(a,n):``,u=[c||l,(a==null?void 0:a.ip)||``,s].filter(Boolean).join(` · `),d=a&&a.role!==`master`&&a.mac&&r.onRename?a.uid:``,f=e.view.clients.length,p=f===1?n(`tr064_oneDevice`):f?n(`tr064_devices`,f):``,m=j(e.w-20-(p?p.length*6.2+8:0),14,!0),h=j(e.w-20,11);return(0,P.jsxs)(`g`,{transform:`translate(${e.x}, ${e.y})`,children:[(0,P.jsx)(`title`,{children:[o,a==null?void 0:a.model,a?z(a,n):``,a==null?void 0:a.mac,a==null?void 0:a.ip,d?n(`tr064_clickToRename`):``].filter(Boolean).join(`
3
- `)}),(0,P.jsx)(`rect`,{width:e.w,height:e.h,rx:8,fill:i.background.paper,stroke:(a==null?void 0:a.role)===`master`?i.primary.main:i.divider,strokeWidth:(a==null?void 0:a.role)===`master`?2:1,strokeDasharray:a?void 0:`5 4`}),(0,P.jsx)(`text`,{x:10,y:24,fontSize:14,fontWeight:600,fill:i.text.primary,style:d?{cursor:`pointer`}:void 0,onClick:d?()=>r.onRename(d):void 0,children:M(o,m)}),(0,P.jsx)(`text`,{x:10,y:42,fontSize:11,fill:i.text.secondary,children:M(u,h)}),(0,P.jsx)(`text`,{x:e.w-10,y:24,fontSize:11,textAnchor:`end`,fill:i.text.secondary,children:p}),e.view.clients.map((t,a)=>{var o;let s=a%e.columns,c=Math.floor(a/e.columns),l=10+s*(e.chipW+6),u=60+c*(e.chipH+6),d=Ye(t.link),f=!!t.node.configured,p=t.node.configured||t.node.name||t.node.mac,m=r.showVendor?z(t.node,n):``,h=e.chipH>=56&&!!m,g=t.connected?tt(t.link):void 0,_=Math.max(B(d)?34:0,g===void 0?0:Et),v=e.chipW-47-_-6,y=g===void 0?e.chipW-47-8:v,b=t.node.ip?`IP: ${t.node.ip}`:``,x=!h&&b&&m?b.length*5.7+10:0,S=g===void 0?``:It(d,g,t.node.position),C=[f?n(`tr064_configuredAs`,t.node.configured):``,t.node.name,z(t.node,n),t.node.mac,t.node.ip,t.link?t.link.interface||t.link.type:``,t.connected?n(`tr064_connected`):n(`tr064_disconnected`),t.link&&(t.link.curDown||t.link.curUp)?n(`tr064_rateTooltip`,N(t.link.curDown),N(t.link.curUp)):``,...t.connected?Bt(t.link,t.node.position,n):[],t.connected?``:zt((o=t.link)==null?void 0:o.lastConnected,n),r.onRename?n(`tr064_clickToRename`):``].filter(Boolean);return(0,P.jsxs)(`g`,{transform:`translate(${l}, ${u})`,opacity:t.connected?1:f?.85:.6,style:r.onRename?{cursor:`pointer`}:void 0,onClick:r.onRename?()=>r.onRename(t.node.uid):void 0,children:[(0,P.jsx)(`title`,{children:C.join(`
4
- `)}),(0,P.jsx)(`rect`,{width:e.chipW,height:e.chipH,rx:7,fill:i.action.hover,stroke:f?i.primary.main:i.divider,strokeWidth:f?2:1,strokeDasharray:t.connected?void 0:`4 3`}),(0,P.jsx)(`path`,{d:`M 7 0.5 H 7 A 6.5 6.5 0 0 0 0.5 7 V ${e.chipH-7} A 6.5 6.5 0 0 0 7 ${e.chipH-.5} V 0.5 Z`,fill:R[d]}),(0,P.jsx)(`rect`,{x:Ct,y:(e.chipH-wt)/2,width:wt,height:wt,rx:6,fill:pe(R[d],.14)}),(0,P.jsx)(mt,{deviceClass:t.node.deviceClass,x:18,y:(e.chipH-Tt)/2,size:Tt,color:R[d]}),(0,P.jsx)(`text`,{x:47,y:h?19:17,fontSize:12.5,fontWeight:f?700:600,fill:f?i.primary.main:i.text.primary,children:M(p,j(v,12.5,!0))}),m?(0,P.jsx)(`text`,{x:47,y:h?34:31,fontSize:10,fontStyle:`italic`,opacity:.75,fill:i.text.secondary,children:M(m,j(y-x,10))}):null,b?(0,P.jsx)(`text`,{x:x?47+y:47,y:h?48:31,fontSize:10,textAnchor:x?`end`:`start`,fill:i.text.secondary,children:M(b,j(y,10))}):null,(0,P.jsx)(`text`,{x:e.chipW-8,y:h?19:16,fontSize:10,textAnchor:`end`,fill:i.text.secondary,children:B(d)}),g===void 0?null:(0,P.jsxs)(P.Fragment,{children:[(0,P.jsx)(Lt,{rcpi:g,x:e.chipW-8-Et,y:h?41:34,color:S}),(0,P.jsx)(`text`,{x:e.chipW-8,y:h?41:34,fontSize:10.5,textAnchor:`end`,fill:S,children:Rt(g)})]})]},t.node.uid)})]},`card-${(a==null?void 0:a.uid)||`unassigned`}`)}function Gt(e){let{tree:t,width:n,t:r,theme:i,showVendor:a,onRename:o}=e,s=n>=kt,c=n>=At,l=c?void 0:{px:1};return(0,P.jsxs)(w,{size:`small`,stickyHeader:!0,children:[(0,P.jsx)(E,{children:(0,P.jsxs)(D,{children:[(0,P.jsx)(T,{sx:l,children:r(`tr064_device`)}),c?(0,P.jsx)(T,{children:r(`tr064_accessPoint`)}):null,(0,P.jsx)(T,{sx:l,children:r(`tr064_connection`)}),c?(0,P.jsx)(T,{children:r(`tr064_state`)}):null,c?(0,P.jsx)(T,{children:r(`tr064_signal`)}):null,c?(0,P.jsx)(T,{children:r(`tr064_rate`)}):null,s?(0,P.jsx)(T,{children:r(`tr064_mac`)}):null,s?(0,P.jsx)(T,{children:r(`tr064_ip`)}):null,o?(0,P.jsx)(T,{sx:{width:40}}):null]})}),(0,P.jsx)(se,{children:t.rows.map(e=>(0,P.jsxs)(D,{sx:{opacity:e.connected?1:.6},children:[(0,P.jsxs)(T,{sx:{...l,fontWeight:e.configured?700:400,color:e.configured?i.palette.primary.main:void 0,overflowWrap:`anywhere`},title:e.configured&&e.hostName!==e.name?e.hostName:void 0,children:[(0,P.jsxs)(y,{sx:{display:`flex`,alignItems:`center`,gap:.75},children:[(0,P.jsx)(y,{component:pt(e.deviceClass),sx:{fontSize:17,flex:`0 0 auto`,color:e.kind?R[e.kind]:`text.secondary`}}),(0,P.jsx)(`span`,{children:e.name})]}),a&&z(e,r)?(0,P.jsx)(k,{variant:`caption`,component:`div`,color:`text.secondary`,sx:{fontStyle:`italic`,opacity:.7,fontWeight:400},children:z(e,r)}):null,c?null:(0,P.jsx)(k,{variant:`caption`,component:`div`,color:`text.secondary`,sx:{fontWeight:400},children:[e.accessPoint||r(`tr064_notAssigned`),e.connected?``:r(`tr064_disconnected`)].filter(Boolean).join(` · `)})]}),c?(0,P.jsx)(T,{children:e.accessPoint||r(`tr064_notAssigned`)}):null,(0,P.jsx)(T,{sx:{...l,whiteSpace:`nowrap`},children:e.kind?(0,P.jsxs)(y,{sx:{display:`flex`,alignItems:`center`,gap:.75},children:[(0,P.jsx)(Vt,{kind:e.kind}),B(e.kind)||e.type]}):null}),c?(0,P.jsxs)(T,{children:[e.connected?r(`tr064_connected`):r(`tr064_disconnected`),!e.connected&&e.lastConnected?(0,P.jsx)(k,{variant:`caption`,component:`div`,color:`text.secondary`,children:zt(e.lastConnected,r)}):null]}):null,c?(0,P.jsxs)(T,{sx:{whiteSpace:`nowrap`},children:[e.connected&&e.rcpi!==void 0?(0,P.jsxs)(y,{sx:{display:`flex`,alignItems:`center`,gap:.75},children:[(0,P.jsx)(y,{component:`svg`,viewBox:`0 0 13 11`,sx:{width:13,height:11,flex:`0 0 auto`},children:(0,P.jsx)(Lt,{rcpi:e.rcpi,x:0,y:11,color:It(e.kind,e.rcpi,e.position)})}),Rt(e.rcpi)]}):null,e.connected&&(e.position===`too_far`||e.position===`too_close`)?(0,P.jsx)(k,{variant:`caption`,component:`div`,color:e.position===`too_far`?`warning.main`:`text.secondary`,children:r(`tr064_position_${e.position}`)}):null]}):null,c?(0,P.jsx)(T,{sx:{whiteSpace:`nowrap`},children:Pt(e)}):null,s?(0,P.jsx)(T,{sx:{fontFamily:`monospace`},children:e.mac}):null,s?(0,P.jsx)(T,{children:e.ip||``}):null,o?(0,P.jsx)(T,{sx:{...l,width:40},children:(0,P.jsx)(ae,{size:`small`,title:r(`tr064_rename`),onClick:()=>o(e.uid),children:(0,P.jsx)(Te,{fontSize:`small`})})}):null]},e.uid))})]})}function Kt(t){let{node:n,t:r,onClose:i,onRename:a}=t,[o,s]=e(n.name||``),[c,l]=e(!1),[u,d]=e(null),f=o.trim()&&o.trim()!==n.name,p=()=>{f&&!c&&(l(!0),d(null),a(n.mac,o.trim()).then(e=>{l(!1),e?d(e):i()}))};return(0,P.jsxs)(C,{open:!0,fullWidth:!0,maxWidth:`sm`,onClose:c?void 0:i,children:[(0,P.jsx)(ne,{children:r(`tr064_renameTitle`)}),(0,P.jsxs)(te,{children:[(0,P.jsx)(k,{variant:`body2`,color:`text.secondary`,sx:{mb:2},children:[n.mac,z(n,r),n.ip].filter(Boolean).join(` · `)}),(0,P.jsx)(O,{fullWidth:!0,autoFocus:!0,variant:`standard`,label:r(`tr064_newName`),value:o,disabled:c,error:!!u,slotProps:{htmlInput:{maxLength:Ot}},onChange:e=>s(e.target.value),onKeyUp:e=>{e.key===`Enter`&&p()}}),(0,P.jsx)(v,{severity:`info`,sx:{mt:2},children:r(`tr064_renameHint`)}),u?(0,P.jsx)(v,{severity:`error`,sx:{mt:1},children:r(`tr064_renameFailed`,u)}):null]}),(0,P.jsxs)(ee,{children:[(0,P.jsx)(b,{variant:`contained`,disabled:c||!f,startIcon:c?(0,P.jsx)(S,{size:16}):(0,P.jsx)(Te,{}),onClick:p,children:r(`tr064_rename`)}),(0,P.jsx)(b,{variant:`contained`,color:`inherit`,disabled:c,startIcon:(0,P.jsx)(be,{}),onClick:i,children:r(`tr064_cancel`)})]})]})}function qt(r){let{data:a,loading:o,error:s,onRefresh:c,onRename:l,t:u,compact:d,height:f}=r,p=r.storageKey||`tr064.meshTopology`,m=ge(),h=i(()=>r.themeType&&r.themeType!==m.palette.mode?me({palette:{mode:r.themeType}}):m,[m,r.themeType]),[g,_]=e(()=>jt(p)),C=e=>{let t={...g,...e};_(t),Mt(p,t)},[ee,te]=e(null),ne=ee?((a==null?void 0:a.nodes)||[]).find(e=>e.uid===ee):void 0,re=l&&a!=null&&a.canRename?e=>te(e):void 0,oe=t(null),[w,se]=e(0);n(()=>{let e=oe.current;if(!e||(se(Math.floor(e.getBoundingClientRect().width)),typeof ResizeObserver>`u`))return;let t=new ResizeObserver(e=>{var t;let n=Math.floor(((t=e[0])==null?void 0:t.contentRect.width)||0);se(e=>e===n?e:n)});return t.observe(e),()=>t.disconnect()},[]);let T=i(()=>a?rt(a,{onlyConfigured:g.onlyConfigured,showDisconnected:g.showDisconnected}):null,[a,g.onlyConfigured,g.showDisconnected]),E=Math.max(0,w-2),D=i(()=>{if(!T||!E)return null;let e=[...T.roots];return T.unassigned.length&&e.push({clients:T.unassigned,children:[]}),ut(e,E,g.showVendor)},[T,E,g.showVendor]),O=!!d||w>0&&w<Dt,fe=f!=null&&f!==``,pe={overflow:`auto`,minHeight:0,border:`1px solid ${h.palette.divider}`,borderRadius:1,...fe?{flex:`1 1 auto`}:{maxHeight:`75vh`}},he=(0,P.jsxs)(y,{sx:{display:`flex`,alignItems:`center`,flexWrap:`wrap`,columnGap:O?.5:1,rowGap:.5,mb:1,flex:`0 0 auto`},children:[O?(0,P.jsx)(ae,{size:`small`,title:u(`tr064_refresh`),disabled:o,onClick:()=>c(),children:o?(0,P.jsx)(S,{size:18}):(0,P.jsx)(Pe,{fontSize:`small`})}):(0,P.jsx)(b,{variant:`outlined`,size:`small`,startIcon:o?(0,P.jsx)(S,{size:16}):(0,P.jsx)(Pe,{}),disabled:o,onClick:()=>c(),children:u(`tr064_refresh`)}),[{key:`onlyConfigured`,label:u(`tr064_onlyConfigured`)},{key:`showDisconnected`,label:u(`tr064_showDisconnected`)},{key:`showVendor`,label:u(`tr064_showVendor`)}].map(e=>(0,P.jsx)(ie,{sx:O?{mr:.5,ml:0}:void 0,control:(0,P.jsx)(x,{size:`small`,sx:O?{p:.5}:void 0,checked:g[e.key],onChange:t=>C({[e.key]:t.target.checked})}),label:(0,P.jsx)(k,{variant:O?`body2`:`body1`,children:e.label})},e.key)),(0,P.jsxs)(de,{size:`small`,exclusive:!0,value:g.viewMode,onChange:(e,t)=>t&&C({viewMode:t}),children:[(0,P.jsx)(ue,{value:`graph`,title:u(`tr064_graph`),sx:O?{p:.5}:void 0,children:(0,P.jsx)(_e,{fontSize:`small`})}),(0,P.jsx)(ue,{value:`table`,title:u(`tr064_table`),sx:O?{p:.5}:void 0,children:(0,P.jsx)(He,{fontSize:`small`})})]}),(0,P.jsx)(y,{sx:{flexGrow:1}}),(0,P.jsxs)(y,{sx:{display:`flex`,alignItems:`center`,flexWrap:`wrap`,columnGap:1.5,rowGap:.5},children:[(0,P.jsx)(Ht,{}),a!=null&&a.ts?(0,P.jsx)(k,{variant:`caption`,color:`text.secondary`,children:u(`tr064_updated`,new Date(a.ts).toLocaleTimeString())}):null]})]}),A;if(s&&(s===`not alive`||!a)){let e=Nt(s,u);A=(0,P.jsx)(v,{severity:e.severity,children:e.text})}else if(!a||!T)A=(0,P.jsxs)(y,{sx:{display:`flex`,alignItems:`center`,gap:1,p:2},children:[(0,P.jsx)(S,{size:20}),(0,P.jsx)(k,{children:u(`tr064_loading`)})]});else{let e=s?Nt(s,u):null;A=(0,P.jsxs)(P.Fragment,{children:[e?(0,P.jsx)(v,{severity:e.severity,sx:{mb:1,flex:`0 0 auto`},children:e.text}):null,!T.roots.length&&!T.unassigned.length?(0,P.jsx)(v,{severity:`info`,children:u(`tr064_noData`)}):g.viewMode===`table`?(0,P.jsx)(ce,{sx:pe,children:(0,P.jsx)(Gt,{tree:T,width:E,t:u,theme:h,showVendor:g.showVendor,onRename:re})}):(0,P.jsx)(y,{sx:{...pe,backgroundColor:h.palette.background.default},children:D?(0,P.jsxs)(`svg`,{width:D.width,height:D.height,style:{display:`block`,fontFamily:h.typography.fontFamily},children:[D.edges.map((e,t)=>Ut(e,t,h,u)),D.cards.map(e=>Wt(e,h,u,{showVendor:g.showVendor,onRename:re}))]}):null})]})}let ve=(0,P.jsxs)(y,{ref:oe,sx:{width:`100%`,minWidth:0,display:`flex`,flexDirection:`column`,...fe?{height:f}:{}},children:[he,A,ne&&l?(0,P.jsx)(Kt,{node:ne,t:u,onClose:()=>te(null),onRename:l}):null]});return h===m?ve:(0,P.jsx)(le,{theme:h,children:ve})}var Jt={connection:`info.connection`,model:`states.boxModel`,firmware:`states.boxFirmware`,accessType:`states.wanAccessType`,linkStatus:`states.wanLinkStatus`,provider:`states.wanProvider`,externalIP:`states.externalIP`,receiveRate:`states.wanReceiveRate`,sendRate:`states.wanSendRate`,downstreamMax:`states.wanDownstreamMax`,upstreamMax:`states.wanUpstreamMax`,wlan:`states.wlan`,wlan24:`states.wlan24`,wlan50:`states.wlan50`,wlan52:`states.wlan52`,wlan60:`states.wlan60`,wlanGuest:`states.wlanGuest`,abNewMessages:`states.abNewMessages`,missedCalls:`calllists.missed.count`,ringing:`callmonitor.ringing`},Yt=Object.keys(Jt),Xt=[{key:`wlan24`,label:`2.4`},{key:`wlan50`,label:`5`},{key:`wlan52`,label:`5 (2)`},{key:`wlan60`,label:`6`},{key:`wlanGuest`,label:``,guest:!0}],Zt=`tr-064.0`;function V(e){let t=String(e??``).trim().replace(/^system\.adapter\./,``);return/^\d+$/.test(t)?`tr-064.${t}`:/^[-\w]+\.\d+$/.test(t)?t:Zt}function H(e,t){let n=e[t];return n!=null&&n!==``}function U(e,t){let n=Number(e[t]);return Number.isFinite(n)?n:0}function W(e,t){return H(e,t)?String(e[t]):``}function G(e,t){let n=e[t];return n===!0||n===`true`||n===1||n===`1`}function Qt(e,t,n){let r=e.toFixed(t);return n?r.replace(`.`,`,`):r}function $t(e,t,n){if(!Number.isFinite(e)||e<=0)return{value:`0`,unit:`Mbit/s`};let r,i;e<1e6?(r=e/1e3,i=`kbit/s`):e<1e9?(r=e/1e6,i=`Mbit/s`):(r=e/1e9,i=`Gbit/s`);let a=r<10?1:+(r<100&&i!==`kbit/s`);i===`Gbit/s`&&(a=r<10?2:1),n&&Math.abs(r-Math.round(r))<.05&&(a=0);let o=Qt(r,a,t);return n&&a&&(o=o.replace(/([.,]\d*?)0+$/,`$1`).replace(/[.,]$/,``)),{value:o,unit:i}}function en(e){let t=e.match(/^\d+\.(\d+)\.(\d+)/);return t?`FRITZ!OS ${Number(t[1])}.${t[2]}`:e}function tn(e,t){return!t||t<=0||!e||e<=0?0:Math.min(100,Math.max(0,e/t*100))}var nn=u==null?void 0:u.Box;function K(e,t){return(s==null?void 0:s[e])||function({sx:e}){return(0,P.jsx)(nn,{component:`span`,sx:{lineHeight:1,display:`inline-flex`,...e},children:t})}}var rn=K(`RouterOutlined`,`⌂`),an=K(`RingVolume`,`☎`),on=K(`SouthRounded`,`↓`),sn=K(`NorthRounded`,`↑`),cn=K(`Wifi`,`≋`),ln=K(`WifiOff`,`≋`),un=K(`Voicemail`,`✉`),dn=K(`PhoneMissed`,`☏`),fn=K(`Public`,`◍`),pn=K(`Hub`,`⌘`),mn=K(`Close`,`✕`),hn=K(`ChevronRight`,`›`),gn=K(`Person`,`☺`),_n=K(`Login`,`→`),vn=K(`Logout`,`←`),yn=K(`History`,`↺`),bn=K(`Refresh`,`↻`),xn=K(`Smartphone`,`▯`),q=u==null?void 0:u.Box,J=u==null?void 0:u.Typography,Sn=u==null?void 0:u.Tooltip,Cn=u==null?void 0:u.Dialog,wn=u==null?void 0:u.DialogTitle,Tn=u==null?void 0:u.DialogContent,En=u==null?void 0:u.DialogActions,Dn=u==null?void 0:u.Button,On=u==null?void 0:u.IconButton,Y=o==null?void 0:o.I18n,kn={online:`fritzdm_online`,noInternet:`fritzdm_noInternet`,connecting:`fritzdm_connecting`,unreachable:`fritzdm_unreachable`,unknown:``},An=[`Up`,`Down`,`Initializing`,`Unavailable`],jn=[`Fiber`,`Cable`],Mn=`tr064.devices.meshTopology`;function Nn(e,...t){return Y.t(e,...t)}var Pn=class e extends l{constructor(t){super(t),I(this,`subscriptions`,[]),I(this,`meshLoader`,null),I(this,`openMesh`,()=>{var e,t;this.state.meshOpen||((e=(t=this.props).onOpenWidgetDialog)==null||e.call(t,this.dialogId),this.setState({meshOpen:!0},()=>this.startMesh()))}),I(this,`closeMesh`,()=>{var e,t;this.stopMesh(),this.setState({meshOpen:!1}),(e=(t=this.props).onCloseWidgetDialog)==null||e.call(t)}),I(this,`onTileKeyDown`,e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),this.openMesh())}),I(this,`askReset`,e=>{e.stopPropagation(),this.setState({resetOpen:!0})}),I(this,`closeReset`,()=>{this.setState({resetOpen:!1})}),I(this,`resetMissed`,e=>{e.stopPropagation(),this.setState({resetOpen:!1}),this.props.stateContext.getSocket().setState(`${this.instance}.${Jt.missedCalls}`,0,!1).catch(()=>{})}),this.state={...this.state,values:{},meshOpen:t.openDialogId===e.dialogIdOf(t),mesh:{data:null,loading:!1,error:null},resetOpen:!1}}static getConfigSchema(){return{name:`fritzdm_widgetName`,schema:{type:`panel`,items:{size:{type:`select`,label:`wm_Size`,options:g,default:`2x1`,format:`radio`,horizontal:!0,noTranslation:!0},instance:{type:`instance`,adapter:`tr-064`,label:`fritzdm_instance`,default:`tr-064.0`,sm:12,md:6},name:{type:`text`,label:`fritzdm_name`,sm:12,md:6},showExternalIp:{type:`checkbox`,label:`fritzdm_showExternalIp`,default:!0,sm:12}}}}}static dialogIdOf(e){return`${e.widget.id}_mesh`}get dialogId(){return e.dialogIdOf(this.props)}get instance(){return V(this.props.settings.instance)}componentDidMount(){var e;(e=super.componentDidMount)==null||e.call(this),this.subscribe(),this.state.meshOpen&&this.startMesh()}componentDidUpdate(e,t,n){var r;if((r=super.componentDidUpdate)==null||r.call(this,e,t,n),V(e.settings.instance)!==this.instance&&(this.unsubscribe(),this.setState({values:{},mesh:{data:null,loading:!1,error:null},resetOpen:!1},()=>{this.subscribe(),this.state.meshOpen&&this.startMesh()})),e.openDialogId!==this.props.openDialogId){let t=this.props.openDialogId===this.dialogId;t&&!this.state.meshOpen?this.setState({meshOpen:!0},()=>this.startMesh()):!t&&e.openDialogId===this.dialogId&&this.state.meshOpen&&(this.stopMesh(),this.setState({meshOpen:!1}))}}componentWillUnmount(){var e;(e=super.componentWillUnmount)==null||e.call(this),this.unsubscribe(),this.stopMesh()}subscribe(){let e=this.props.stateContext;for(let t of Yt){let n=`${this.instance}.${Jt[t]}`,r=(e,n)=>this.onValue(t,n);e.getState(n,r),this.subscriptions.push({id:n,handler:r})}}unsubscribe(){let e=this.props.stateContext;for(let{id:t,handler:n}of this.subscriptions)e.removeState(t,n);this.subscriptions=[]}onValue(e,t){let n=t?t.val:null;this.setState(t=>t.values[e]===n?null:{values:{...t.values,[e]:n},indicators:e===`connection`&&t.indicators?{...t.indicators,connected:n===null?null:!!n}:t.indicators})}startMesh(){this.stopMesh();let e=new St({socket:this.props.stateContext.getSocket(),instanceId:this.instance,onChange:t=>{this.meshLoader===e&&this.setState({mesh:t})}});this.meshLoader=e,e.start()}stopMesh(){var e;(e=this.meshLoader)==null||e.stop(),this.meshLoader=null}isTileActive(){return G(this.state.values,`ringing`)}hasTileAction(){return!0}onTileClick(){this.openMesh()}renderTileIcon(){return this.renderIcon(`1em`)}get values(){return this.state.values}get displayName(){var e;return((e=this.props.settings)==null?void 0:e.name)||this.state.name||W(this.values,`model`)||`FRITZ!Box`}get floatComma(){return!!this.props.stateContext.isFloatComma}get status(){let e=this.values,t=e.connection;if(t===!1||t===`false`)return`unreachable`;let n=W(e,`linkStatus`);return n===`Up`?`online`:n===`Initializing`?`connecting`:n===`Down`||n===`Unavailable`?`noInternet`:G(e,`connection`)?`online`:`unknown`}statusColor(e){switch(this.status){case`online`:return e.palette.success.main;case`connecting`:return e.palette.warning.main;case`noInternet`:case`unreachable`:return e.palette.error.main;default:return e.palette.text.disabled}}get statusText(){let e=kn[this.status];return e?Y.t(e):`…`}get accessType(){let e=W(this.values,`accessType`);return jn.includes(e)?Y.t(`fritzdm_access_${e}`):e}get linkStatus(){let e=W(this.values,`linkStatus`);return An.includes(e)?Y.t(`fritzdm_link_${e}`):e}get modelLine(){let e=W(this.values,`model`),t=W(this.values,`firmware`);return[e&&e!==this.displayName?e:``,t?en(t):``].filter(Boolean).join(` · `)}accent(e){return this.getAccentColor()||e.palette.primary.main}rate(e){return this.status===`unreachable`||!H(this.values,e)?{value:`–`,unit:``}:$t(U(this.values,e)*8,this.floatComma)}rateText(e){let t=this.rate(e);return t.unit?`${t.value} ${t.unit}`:t.value}get hasRates(){return H(this.values,`receiveRate`)||H(this.values,`sendRate`)}get staleSx(){return this.status===`unreachable`?{opacity:.45}:{}}get showIp(){return this.props.settings.showExternalIp!==!1&&H(this.values,`externalIP`)}renderIcon(e){let t=G(this.values,`ringing`),n=this.status===`unreachable`;return(0,P.jsx)(q,{component:`span`,sx:r=>({display:`inline-flex`,flexShrink:0,fontSize:e,lineHeight:1,color:t?r.palette.warning.main:n?r.palette.text.disabled:this.accent(r),transition:`color 0.25s ease`,"& .MuiSvgIcon-root":{fontSize:`inherit`},...t?{animation:`fritzdmRing 1.2s ease-in-out infinite`,"@keyframes fritzdmRing":{"0%, 50%, 100%":{transform:`rotate(0deg)`},"10%, 30%":{transform:`rotate(-12deg)`},"20%, 40%":{transform:`rotate(12deg)`}}}:{}}),children:t?(0,P.jsx)(an,{sx:{fontSize:`inherit`}}):(0,P.jsx)(rn,{sx:{fontSize:`inherit`}})})}renderStatus(e,t){let n=t&&this.status!==`unreachable`?this.accessType:``;return(0,P.jsxs)(q,{sx:{display:`flex`,alignItems:`center`,gap:`0.4em`,minWidth:0,fontSize:e,lineHeight:1.35},children:[(0,P.jsx)(q,{component:`span`,sx:e=>({width:`0.6em`,height:`0.6em`,flexShrink:0,borderRadius:`50%`,backgroundColor:this.statusColor(e),boxShadow:`0 0 0 0.18em ${p(this.statusColor(e),.2)}`})}),(0,P.jsxs)(q,{component:`span`,sx:{overflow:`hidden`,whiteSpace:`nowrap`,textOverflow:`ellipsis`,fontWeight:600,color:`text.secondary`},children:[(0,P.jsx)(q,{component:`span`,sx:e=>({color:this.status===`online`?`text.primary`:this.statusColor(e)}),children:this.statusText}),n?(0,P.jsx)(q,{component:`span`,children:` · ${n}`}):null]})]})}renderRateValue(e,t,n){let r=this.rate(e),i=e===`receiveRate`?on:sn;return(0,P.jsxs)(q,{component:`span`,sx:{display:`inline-flex`,alignItems:`baseline`,gap:`0.2em`,fontSize:t,lineHeight:1.15,whiteSpace:`nowrap`,fontVariantNumeric:`tabular-nums`,color:n!=null&&n.muted?`text.secondary`:`text.primary`},children:[(0,P.jsx)(i,{sx:{fontSize:`0.8em`,alignSelf:`center`,color:n!=null&&n.muted?`text.secondary`:`text.disabled`}}),(0,P.jsx)(q,{component:`span`,sx:{fontWeight:700},children:r.value}),(n==null?void 0:n.unit)===!1||!r.unit?null:(0,P.jsx)(q,{component:`span`,sx:{fontSize:`max(9px, 0.62em)`,fontWeight:500,color:`text.secondary`},children:r.unit})]})}renderUsageBar(e,t){let n=U(this.values,t),r=tn(U(this.values,e)*8,n),i=n>0?$t(n,this.floatComma,!0):null;return(0,P.jsx)(q,{title:i?Y.t(`fritzdm_maxRate`,`${i.value} ${i.unit}`):void 0,sx:{height:4,borderRadius:2,overflow:`hidden`,backgroundColor:`rgba(127,127,127,0.22)`},children:(0,P.jsx)(q,{sx:t=>({width:`${n>0?Math.max(r,r>0?2:0):0}%`,height:`100%`,borderRadius:`inherit`,backgroundColor:e===`receiveRate`?this.accent(t):p(this.accent(t),.6),transition:`width 0.6s ease`})})})}renderRates(e,t){if(!this.hasRates)return null;let n=(n,r,i)=>{let a=U(this.values,r),o=a>0?$t(a,this.floatComma,!0):null;return(0,P.jsxs)(q,{sx:{flex:`1 1 0`,minWidth:0,display:`flex`,flexDirection:`column`,gap:`4px`},children:[t?(0,P.jsx)(J,{variant:`caption`,noWrap:!0,sx:{color:`text.secondary`,lineHeight:1.2,fontSize:`0.7rem`},children:i}):null,this.renderRateValue(n,e),a>0?this.renderUsageBar(n,r):null,t&&o?(0,P.jsx)(J,{variant:`caption`,noWrap:!0,sx:{color:`text.secondary`,lineHeight:1.2,fontSize:`0.65rem`},children:Y.t(`fritzdm_maxRate`,`${o.value} ${o.unit}`)}):null]})};return(0,P.jsxs)(q,{sx:{display:`flex`,gap:`max(12px, 4cqi)`,minWidth:0,...this.staleSx},children:[n(`receiveRate`,`downstreamMax`,Y.t(`fritzdm_download`)),n(`sendRate`,`upstreamMax`,Y.t(`fritzdm_upload`))]})}static renderPill(e,t,n){let r=(0,P.jsx)(q,{component:`span`,role:n.onClick?`button`:void 0,tabIndex:n.onClick?0:void 0,onClick:n.onClick,onKeyDown:n.onClick?e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),n.onClick(e))}:void 0,sx:e=>{var t;let r=(t=n.color)==null?void 0:t.call(n,e);return{display:`inline-flex`,alignItems:`center`,gap:`3px`,flexShrink:0,height:`1.7em`,px:`0.55em`,borderRadius:`0.85em`,fontSize:`inherit`,fontWeight:n.strong?700:600,lineHeight:1,whiteSpace:`nowrap`,color:n.off?e.palette.text.disabled:r||e.palette.text.secondary,backgroundColor:n.off?`transparent`:r?p(r,e.palette.mode===`dark`?.2:.12):p(e.palette.text.primary,.07),border:n.off?`1px dashed ${p(e.palette.text.primary,.22)}`:`1px solid transparent`,textDecoration:n.off?`line-through`:`none`,"& .MuiSvgIcon-root":{fontSize:`1.15em`},...n.onClick?{cursor:`pointer`,outline:`none`,"&:hover":{filter:`brightness(1.15)`},"&:focus-visible":{boxShadow:`0 0 0 2px ${p(e.palette.text.primary,.4)}`}}:{}}},children:t},e);return n.title?(0,P.jsx)(Sn,{title:n.title,slotProps:{popper:{sx:{pointerEvents:`none`}}},children:r},e):r}renderWlan(t,n){let r=this.values,i=Xt.filter(e=>H(r,e.key));if(!i.length&&!H(r,`wlan`))return null;let a=Y.t(`fritzdm_on`),o=Y.t(`fritzdm_off`),s=i.length?i.some(e=>G(r,e.key)):G(r,`wlan`),c=e=>e.palette.success.main,l=i.length?i.map(t=>{let n=G(r,t.key),i=t.guest?Y.t(`fritzdm_guest`):this.floatComma?t.label.replace(`.`,`,`):t.label,s=t.guest?Y.t(`fritzdm_guestWlan`):`${i} GHz`;return e.renderPill(t.key,i,{color:n?c:void 0,off:!n,title:`${s}: ${n?a:o}`})}):[e.renderPill(`wlan`,`${Y.t(`fritzdm_wlan`)}`,{color:s?c:void 0,off:!s,title:`${Y.t(`fritzdm_wlan`)}: ${s?a:o}`})];return(0,P.jsxs)(q,{sx:{display:`flex`,alignItems:`center`,gap:`4px`,fontSize:t,minWidth:0,flexWrap:`nowrap`,overflow:`hidden`,...this.staleSx},children:[(0,P.jsx)(q,{component:`span`,title:Y.t(`fritzdm_wlan`),sx:{display:`inline-flex`,color:s?`text.secondary`:`text.disabled`,mr:`1px`},children:s?(0,P.jsx)(cn,{sx:{fontSize:`1.35em`}}):(0,P.jsx)(ln,{sx:{fontSize:`1.35em`}})}),n?(0,P.jsx)(q,{component:`span`,sx:{color:`text.secondary`,fontWeight:600,mr:`2px`},children:Y.t(`fritzdm_wlan`)}):null,l]})}renderPhone(t,n,r){let i=this.values,a=[],o=e=>e.palette.warning.main,s=e=>e.palette.error.main,c=(e,t)=>r===`auto`?(0,P.jsxs)(P.Fragment,{children:[(0,P.jsx)(q,{component:`span`,sx:{"@container (min-width: 400px)":{display:`none`}},children:e}),(0,P.jsx)(q,{component:`span`,sx:{display:`none`,"@container (min-width: 400px)":{display:`inline`}},children:t})]}):(0,P.jsx)(P.Fragment,{children:e});if(G(i,`ringing`)&&a.push(e.renderPill(`ringing`,(0,P.jsxs)(P.Fragment,{children:[(0,P.jsx)(an,{}),r===`auto`?Y.t(`fritzdm_ringing`):null]}),{color:o,title:Y.t(`fritzdm_ringing`),strong:!0})),H(i,`abNewMessages`)){let t=U(i,`abNewMessages`);if(t||n){let n=t===1?Y.t(`fritzdm_oneNewMessage`):t?Y.t(`fritzdm_newMessages`,t):Y.t(`fritzdm_noNewMessages`);a.push(e.renderPill(`ab`,(0,P.jsxs)(P.Fragment,{children:[(0,P.jsx)(un,{}),c(t,n)]}),{color:t?o:void 0,title:n}))}}if(H(i,`missedCalls`)){let t=U(i,`missedCalls`);if(t||n){let n=t===1?Y.t(`fritzdm_oneMissedCall`):t?Y.t(`fritzdm_missedCalls`,t):Y.t(`fritzdm_noMissedCalls`);a.push(e.renderPill(`missed`,(0,P.jsxs)(P.Fragment,{children:[(0,P.jsx)(dn,{}),c(t,n)]}),{color:t?s:void 0,title:t?`${n} - ${Y.t(`fritzdm_resetHint`)}`:n,onClick:t?this.askReset:void 0}))}}return a.length?(0,P.jsx)(q,{sx:{display:`flex`,alignItems:`center`,gap:`4px`,fontSize:t,minWidth:0,flexWrap:`nowrap`,overflow:`hidden`,...this.staleSx},children:a}):null}renderIp(e){return this.showIp?(0,P.jsxs)(q,{title:Y.t(`fritzdm_externalIp`),sx:{display:`inline-flex`,alignItems:`center`,gap:`0.3em`,minWidth:0,fontSize:e,color:`text.secondary`,...this.staleSx},children:[(0,P.jsx)(fn,{sx:{fontSize:`1.2em`,flexShrink:0}}),(0,P.jsx)(q,{component:`span`,sx:{overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`,fontVariantNumeric:`tabular-nums`,letterSpacing:`0.01em`},children:W(this.values,`externalIP`)})]}):null}renderName(e,t){return(0,P.jsx)(J,{ref:this.nameRef,variant:`body2`,sx:n=>({fontWeight:600,lineHeight:1.3,overflow:`hidden`,whiteSpace:`nowrap`,fontSize:e,...c(n)?{textTransform:`uppercase`,letterSpacing:`0.08em`,fontSize:t}:{}}),children:this.displayName})}renderTileIndicators(){return(0,P.jsx)(`div`,{onClick:m,onKeyDown:m,style:{display:`contents`},children:this.renderIndicators(this.renderSettingsButton())})}renderFrame(e,t,n){let r=this.isTileActive();return(0,P.jsxs)(q,{id:String(this.props.widget.id),className:this.getWidgetClass(),sx:t=>_(t,e),children:[e===`2x1`?(0,P.jsx)(q,{sx:{width:`calc(50% - 6px)`,aspectRatio:`1`}}):null,(0,P.jsxs)(q,{role:`button`,tabIndex:0,"aria-label":`${this.displayName} - ${Y.t(`fritzdm_showMesh`)}`,onClick:this.openMesh,onKeyDown:this.onTileKeyDown,sx:n=>({boxSizing:`border-box`,position:e===`2x1`?`absolute`:`relative`,...e===`2x1`?{inset:0}:{},width:`100%`,overflow:`hidden`,userSelect:`none`,cursor:`pointer`,textAlign:`left`,color:`text.primary`,outline:`none`,...d(n,r,this.getAccentColor(),!0,this.getInactiveColor()),"&:focus-visible":{boxShadow:`0 0 0 2px ${this.accent(n)} inset`},...t(n)}),children:[n,this.renderTileIndicators()]}),this.state.meshOpen||this.state.resetOpen?(0,P.jsxs)(`span`,{style:{display:`contents`},onClick:m,onPointerDown:m,onMouseDown:m,onTouchStart:m,onKeyDown:m,children:[this.state.meshOpen?this.renderMeshDialog():null,this.state.resetOpen?this.renderResetDialog():null]}):null]})}renderResetDialog(){let e=U(this.values,`missedCalls`);return(0,P.jsxs)(Cn,{open:!0,onClose:this.closeReset,maxWidth:`xs`,fullWidth:!0,"aria-labelledby":`${this.dialogId}-reset-title`,children:[(0,P.jsxs)(wn,{id:`${this.dialogId}-reset-title`,component:`div`,sx:{display:`flex`,alignItems:`center`,gap:1.5,py:1.5},children:[(0,P.jsx)(dn,{sx:e=>({color:e.palette.error.main,flexShrink:0})}),(0,P.jsx)(J,{component:`h2`,sx:{fontSize:`1.05rem`,fontWeight:600,lineHeight:1.3},children:Y.t(`fritzdm_resetMissedTitle`)})]}),(0,P.jsx)(Tn,{children:(0,P.jsx)(J,{variant:`body2`,children:Y.t(`fritzdm_resetMissedText`,e)})}),(0,P.jsxs)(En,{children:[(0,P.jsx)(Dn,{variant:`contained`,color:`primary`,autoFocus:!0,onClick:this.resetMissed,children:Y.t(`fritzdm_reset`)}),(0,P.jsx)(Dn,{variant:`contained`,color:`inherit`,startIcon:(0,P.jsx)(mn,{}),onClick:this.closeReset,children:Y.t(`fritzdm_cancel`)})]})]})}renderMeshDialog(){let{data:e,loading:t,error:n}=this.state.mesh;return(0,P.jsxs)(Cn,{open:!0,onClose:this.closeMesh,maxWidth:!1,"aria-labelledby":`${this.dialogId}-title`,slotProps:{paper:{sx:{width:`min(1200px, calc(100vw - 32px))`,height:n&&!e?`auto`:`min(880px, calc(100dvh - 32px))`,maxWidth:`none`,maxHeight:`none`,m:2,display:`flex`,flexDirection:`column`,"@media (max-width: 599.95px)":{width:`100%`,height:`100%`,m:0,borderRadius:0}}}},children:[(0,P.jsxs)(wn,{id:`${this.dialogId}-title`,component:`div`,sx:{display:`flex`,alignItems:`center`,gap:1.5,pr:1,py:1.5},children:[(0,P.jsx)(pn,{sx:e=>({color:this.accent(e),fontSize:28,flexShrink:0})}),(0,P.jsxs)(q,{sx:{flex:1,minWidth:0},children:[(0,P.jsx)(J,{component:`h2`,noWrap:!0,sx:{fontSize:`1.05rem`,fontWeight:600,lineHeight:1.3},children:Y.t(`fritzdm_meshTitle`)}),(0,P.jsx)(J,{component:`div`,variant:`caption`,noWrap:!0,sx:{color:`text.secondary`,display:`block`},children:[this.displayName,this.instance].join(` · `)})]}),(0,P.jsx)(On,{onClick:this.closeMesh,title:Y.t(`fritzdm_close`),"aria-label":Y.t(`fritzdm_close`),children:(0,P.jsx)(mn,{})})]}),(0,P.jsx)(Tn,{sx:{flex:`1 1 auto`,minHeight:0,display:`flex`,flexDirection:`column`,pt:0,px:{xs:1.5,sm:3},pb:{xs:1.5,sm:2.5}},children:(0,P.jsx)(qt,{data:e,loading:t,error:n,onRefresh:()=>{var e;(e=this.meshLoader)==null||e.refresh()},onRename:async(e,t)=>this.meshLoader?this.meshLoader.rename(e,t):`not alive`,t:Nn,height:`100%`,storageKey:Mn})})]})}renderCompact(){return this.renderFrame(`1x1`,e=>({display:`flex`,flexDirection:`column`,justifyContent:`space-between`,aspectRatio:`1`,padding:c(e)?`max(12px, 8cqi)`:`max(14px, 9cqi)`}),(0,P.jsxs)(P.Fragment,{children:[(0,P.jsx)(q,{sx:{display:`flex`,alignItems:`flex-start`,minHeight:0},children:this.renderIcon(`max(34px, 25cqi)`)}),(0,P.jsxs)(q,{sx:{minWidth:0},children:[this.hasRates?this.renderRateValue(`receiveRate`,`max(1rem, 11.5cqi)`,{muted:this.status!==`online`}):null,this.renderName(`max(0.8rem, 8.5cqi)`,`max(0.68rem, 6.8cqi)`),this.renderStatus(`max(0.66rem, 6.6cqi)`,!0)]})]}))}renderWide(){return this.renderFrame(`2x0.5`,e=>({display:`flex`,alignItems:`center`,gap:`max(10px, 3cqi)`,height:80,padding:c(e)?`8px 12px`:`8px 14px`}),(0,P.jsxs)(P.Fragment,{children:[this.renderIcon(`34px`),(0,P.jsxs)(q,{sx:{flex:1,minWidth:0,display:`flex`,flexDirection:`column`,gap:`3px`},children:[(0,P.jsx)(q,{sx:{pr:`26px`,minWidth:0},children:this.renderName(`0.85rem`,`0.72rem`)}),(0,P.jsxs)(q,{sx:{display:`flex`,alignItems:`center`,gap:1,minWidth:0},children:[(0,P.jsx)(q,{sx:{flex:`1 1 auto`,minWidth:0},children:this.renderStatus(`0.72rem`,!0)}),this.hasRates?(0,P.jsxs)(q,{title:`${Y.t(`fritzdm_download`)}: ${this.rateText(`receiveRate`)}, ${Y.t(`fritzdm_upload`)}: ${this.rateText(`sendRate`)}`,sx:{display:`flex`,gap:`8px`,flexShrink:0,...this.staleSx},children:[this.renderRateValue(`receiveRate`,`0.8rem`),this.renderRateValue(`sendRate`,`0.8rem`,{unit:!1})]}):null]}),(0,P.jsxs)(q,{sx:{display:`flex`,alignItems:`center`,gap:1,minWidth:0,overflow:`hidden`,height:18},children:[this.renderWlan(`0.66rem`,!1),(0,P.jsx)(q,{sx:{flex:`1 1 auto`,minWidth:0,display:`flex`,"@container (max-width: 340px)":{display:`none`}},children:this.renderIp(`0.68rem`)}),(0,P.jsx)(q,{sx:{ml:`auto`,flexShrink:0},children:this.renderPhone(`0.66rem`,!1,`count`)})]})]})]}))}renderWideTall(){return this.renderFrame(`2x1`,e=>({display:`flex`,flexDirection:`column`,justifyContent:`space-between`,gap:`6px`,height:`100%`,padding:c(e)?`max(12px, 3.5cqi)`:`max(14px, 4cqi)`}),(0,P.jsxs)(P.Fragment,{children:[(0,P.jsxs)(q,{sx:{display:`flex`,alignItems:`center`,gap:`max(10px, 3cqi)`,minWidth:0},children:[this.renderIcon(`max(30px, 9cqi)`),(0,P.jsxs)(q,{sx:{flex:1,minWidth:0},children:[(0,P.jsx)(q,{sx:{pr:`26px`,minWidth:0},children:this.renderName(`max(0.875rem, 4.4cqi)`,`max(0.72rem, 3.5cqi)`)}),(0,P.jsxs)(q,{sx:{display:`flex`,alignItems:`center`,gap:1,minWidth:0},children:[(0,P.jsx)(q,{sx:{flex:`0 0 auto`,maxWidth:`100%`,minWidth:0},children:this.renderStatus(`max(0.7rem, 3.3cqi)`,!0)}),(0,P.jsx)(q,{sx:{flex:`0 1 auto`,minWidth:0,display:`flex`,ml:`auto`},children:this.renderIp(`max(0.68rem, 3.2cqi)`)})]})]})]}),this.renderRates(`max(0.95rem, 5cqi)`,!1),(0,P.jsxs)(q,{sx:{display:`flex`,alignItems:`center`,gap:`8px`,minWidth:0},children:[(0,P.jsx)(q,{sx:{flex:`1 1 auto`,minWidth:0,display:`flex`},children:this.renderWlan(`max(0.66rem, 3cqi)`,!1)}),(0,P.jsx)(q,{sx:{flexShrink:0},children:this.renderPhone(`max(0.66rem, 3cqi)`,!1,`count`)})]})]}))}renderHuge(){let e=this.modelLine,t=this.status,n=[t===`unreachable`?``:this.accessType,t===`unreachable`?``:this.linkStatus,t===`unreachable`?``:W(this.values,`provider`)].filter(Boolean).join(` · `),r=e=>(0,P.jsx)(J,{variant:`caption`,noWrap:!0,sx:{color:`text.secondary`,fontSize:`max(0.68rem, 2.6cqi)`,lineHeight:1.2,width:`28%`,flexShrink:0},children:e}),i=this.renderIp(`max(0.75rem, 2.9cqi)`),a=this.renderWlan(`max(0.68rem, 2.7cqi)`,!1),o=this.renderPhone(`max(0.68rem, 2.7cqi)`,!0,`auto`),s=(e,t,n)=>n?(0,P.jsxs)(q,{sx:{display:`flex`,alignItems:`center`,gap:1,minWidth:0,minHeight:`1.6em`},children:[r(t),(0,P.jsx)(q,{sx:{flex:1,minWidth:0,display:`flex`},children:n})]},e):null;return this.renderFrame(`2x2`,e=>({display:`flex`,flexDirection:`column`,gap:`max(8px, 2.8cqi)`,aspectRatio:`1`,padding:c(e)?`max(14px, 4.5cqi)`:`max(16px, 5cqi)`}),(0,P.jsxs)(P.Fragment,{children:[(0,P.jsxs)(q,{sx:{display:`flex`,alignItems:`center`,gap:`max(10px, 3cqi)`,minWidth:0,pr:`26px`},children:[this.renderIcon(`max(36px, 11cqi)`),(0,P.jsxs)(q,{sx:{flex:1,minWidth:0},children:[this.renderName(`max(0.95rem, 5cqi)`,`max(0.78rem, 3.8cqi)`),e?(0,P.jsx)(J,{variant:`caption`,noWrap:!0,component:`div`,sx:{color:`text.secondary`,lineHeight:1.3,fontSize:`max(0.7rem, 3cqi)`},children:e}):null]})]}),(0,P.jsxs)(q,{sx:{display:`flex`,alignItems:`center`,gap:1,minWidth:0},children:[(0,P.jsx)(q,{sx:{flexShrink:0},children:this.renderStatus(`max(0.78rem, 3.3cqi)`,!1)}),n?(0,P.jsx)(J,{variant:`caption`,noWrap:!0,sx:{color:`text.secondary`,fontSize:`max(0.7rem, 2.9cqi)`,minWidth:0},children:n}):null]}),this.renderRates(`max(1.05rem, 5.6cqi)`,!0),(0,P.jsxs)(q,{sx:{display:`flex`,flexDirection:`column`,gap:`max(4px, 1.4cqi)`,minWidth:0},children:[s(`ip`,Y.t(`fritzdm_externalIp`),i),s(`wlan`,Y.t(`fritzdm_wlan`),a),s(`phone`,Y.t(`fritzdm_phone`),o)]}),(0,P.jsxs)(q,{sx:e=>({mt:`auto`,pt:`max(6px, 1.8cqi)`,borderTop:`1px solid ${p(e.palette.text.primary,.1)}`,display:`flex`,alignItems:`center`,gap:.75,color:`text.secondary`,fontSize:`max(0.72rem, 2.9cqi)`,fontWeight:600,"& .MuiSvgIcon-root":{fontSize:`1.3em`}}),children:[(0,P.jsx)(pn,{}),(0,P.jsx)(q,{component:`span`,sx:{flex:1,minWidth:0,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},children:Y.t(`tr064_meshTopology`)}),(0,P.jsx)(hn,{})]})]}))}},X={present:`present`,lastArrival:`lastArrival`,lastDeparture:`lastDeparture`,presentSince:`presentSince`,absentSince:`absentSince`,presentToday:`presentToday`,absentToday:`absentToday`,devices:`devices`,history:`history`},Fn=/^(history|sql|influxdb)\.\d+$/;function In(e){if(typeof e==`string`)return e;if(e&&typeof e==`object`){let t=e;return t.en||Object.values(t)[0]||``}return``}async function Ln(e,t){let n=`${t}.presence.persons.`;try{let t=await e.getObjectViewSystem(`channel`,n,`${n}香`)||{};return Object.keys(t).filter(e=>e.length>n.length&&!e.substring(n.length).includes(`.`)).map(e=>{var r;let i=t[e],a=(i==null?void 0:i.native)||{};return{id:e,name:a.person||In(i==null||(r=i.common)==null?void 0:r.name)||e.substring(n.length),group:a.group||``}}).sort((e,t)=>e.name.localeCompare(t.name))}catch(e){return console.warn(`Cannot read the persons of ${t}: ${String(e)}`),[]}}function Rn(e,t){let n=(t||``).trim();if(!n)return;let r=n.toLowerCase();return e.find(e=>e.name===n)||e.find(e=>e.name.toLowerCase()===r)}function zn(e){if(typeof e!=`string`||!e)return[];try{let t=JSON.parse(e);return Array.isArray(t)?t.filter(e=>e&&typeof e.ts==`number`).map(e=>({ts:e.ts,present:!!e.present})).sort((e,t)=>t.ts-e.ts):[]}catch{return[]}}function Bn(e){var t;let n=e==null||(t=e.common)==null?void 0:t.custom;if(n)return Object.keys(n).find(e=>{var t;return Fn.test(e)&&((t=n[e])==null?void 0:t.enabled)})}async function Vn(e,t,n={}){let r=Math.max(1,n.count||20),i=Math.max(1,n.days||7),a=`${t}.${X.present}`;try{let t=e.getHistory?Bn(await e.getObject(a)):void 0;if(t&&e.getHistory){let n=Date.now(),o=await e.getHistory(a,{instance:t,start:n-i*24*36e5,end:n,aggregate:`none`,ack:!0,from:!1,q:!1,addId:!1,returnNewestEntries:!0,count:r*4}),s=Array.isArray(o)?o:[],c=[];if(s.filter(e=>e&&typeof e.ts==`number`&&e.val!==null&&e.val!==void 0).sort((e,t)=>e.ts-t.ts).forEach(e=>{let t=e.val===!0||e.val===`true`||e.val===1||e.val===`1`;(!c.length||c[c.length-1].present!==t)&&c.push({ts:e.ts,present:t})}),c.length)return{events:c.reverse().slice(0,r),source:`history`,instance:t}}}catch(e){console.warn(`Cannot read the history of ${a}: ${String(e)}`)}try{let n=await e.getState(`${t}.${X.history}`),i=zn(n==null?void 0:n.val).slice(0,r);return{events:i,source:i.length?`adapter`:`none`}}catch{return{events:[],source:`none`}}}function Hn(e){return e===`zh-cn`?`zh-CN`:e||`en`}function Un(e,t){let n=Math.max(0,Math.floor(e/6e4)),r=[[Math.floor(n/1440),`day`],[Math.floor(n%1440/60),`hour`],[n%60,`minute`]],i=r.findIndex(([e])=>e>0);return(i===-1?[r[2]]:r.slice(i,i+2).filter(([e])=>e>0)).map(([e,n])=>{try{return new Intl.NumberFormat(Hn(t),{style:`unit`,unit:n,unitDisplay:n===`day`?`long`:`short`}).format(e)}catch{return`${e} ${n===`day`?`d`:n===`hour`?`h`:`min`}`}}).join(` `)}function Wn(e,t){if(!e)return`—`;let n=new Date(e),r=new Date,i=Hn(t),a=n.toLocaleTimeString(i,{hour:`2-digit`,minute:`2-digit`}),o=new Date(r.getFullYear(),r.getMonth(),r.getDate()).getTime();if(e>=o)return a;if(e>=o-864e5)try{return`${new Intl.RelativeTimeFormat(i,{numeric:`auto`}).format(-1,`day`)} ${a}`}catch{}let s=n.getFullYear()===r.getFullYear();return`${n.toLocaleDateString(i,{day:`2-digit`,month:`2-digit`,...s?{}:{year:`numeric`}})} ${a}`}var Z=u==null?void 0:u.Box,Q=u==null?void 0:u.Typography,Gn=u==null?void 0:u.Dialog,Kn=u==null?void 0:u.DialogTitle,qn=u==null?void 0:u.DialogContent,Jn=u==null?void 0:u.IconButton,Yn=u==null?void 0:u.CircularProgress,$=o==null?void 0:o.I18n,Xn=o==null?void 0:o.Icon,Zn=[X.present,X.lastArrival,X.lastDeparture,X.presentToday,X.absentToday,X.devices,X.history],Qn=50,$n=14,er=4,tr=3e4,nr=6e4,rr={events:[],source:`none`,loading:!1};function ir(e){return e===!0||e===`true`||e===1||e===`1`}function ar(e){let t=Number(e);return Number.isFinite(t)?t:0}function or(e){let t=e.replace(/[^\p{L}\p{N}\s-]/gu,``).split(/[\s-]+/).filter(Boolean);return t.length?((Array.from(t[0])[0]||``)+(t.length>1&&Array.from(t[t.length-1])[0]||``)).toUpperCase():``}function sr(e){return e===`zh-cn`?`zh-CN`:e||`en`}function cr(e,t){let n=sr(t),r=new Date(e),i=new Date().setHours(0,0,0,0),a=new Date(e).setHours(0,0,0,0),o=Math.round((i-a)/864e5);if(o===0||o===1)try{let e=new Intl.RelativeTimeFormat(n,{numeric:`auto`}).format(-o,`day`);return e.charAt(0).toLocaleUpperCase(n)+e.slice(1)}catch{}return r.toLocaleDateString(n,{weekday:`long`,day:`2-digit`,month:`2-digit`,...r.getFullYear()===new Date().getFullYear()?{}:{year:`numeric`}})}var lr={FritzBoxComponent:Pn,PersonComponent:class e extends l{constructor(t){super(t),I(this,`subscriptions`,[]),I(this,`connectionSubscription`,null),I(this,`lookupRun`,0),I(this,`historyRun`,0),I(this,`ticker`,null),I(this,`lastLookup`,0),I(this,`openHistory`,()=>{var e,t;!this.state.historyOpen&&this.canOpenHistory&&((e=(t=this.props).onOpenWidgetDialog)==null||e.call(t,this.dialogId),this.setState({historyOpen:!0},()=>this.loadHistory()))}),I(this,`closeHistory`,()=>{var e,t;this.historyRun++,this.setState({historyOpen:!1}),(e=(t=this.props).onCloseWidgetDialog)==null||e.call(t)}),I(this,`onTileKeyDown`,e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),this.openHistory())}),this.state={...this.state,person:null,lookup:`loading`,values:{},connected:null,historyOpen:t.openDialogId===e.dialogIdOf(t),history:rr,now:Date.now()}}static getConfigSchema(){return{name:`fritzdm_personWidgetName`,schema:{type:`panel`,items:{size:{type:`select`,label:`wm_Size`,options:g,default:`1x1`,format:`radio`,horizontal:!0,noTranslation:!0},colorActive:{type:`color`,label:`fritzdm_colorPresent`,sm:6},color:{type:`color`,label:`fritzdm_colorAbsent`,sm:6},instance:{type:`instance`,adapter:`tr-064`,label:`fritzdm_instance`,default:`tr-064.0`,sm:12,md:6},person:{type:`autocompleteSendTo`,label:`fritzdm_person`,help:`fritzdm_personHelp`,command:`personList`,data:{},instance:"${data.instance}",alsoDependsOn:[`instance`],freeSolo:!0,sm:12,md:6},_appearance:{type:`header`,text:`fritzdm_appearance`,size:5,newLine:!0,sm:12},name:{type:`text`,label:`fritzdm_nameOverride`,help:`fritzdm_nameOverrideHelp`,sm:12,md:6},showName:{type:`checkbox`,label:`fritzdm_showName`,default:!0,sm:12,md:6},photo:{type:`image`,label:`fritzdm_photo`,help:`fritzdm_photoHelp`,base64:!0,crop:!0,maxSize:204800,accept:{"image/*":[]},newLine:!0,sm:12},iconActive:{type:`component`,subType:`iconSelect`,label:`fritzdm_iconPresent`,hidden:`!!data.photo`,sm:6},icon:{type:`component`,subType:`iconSelect`,label:`fritzdm_iconAbsent`,hidden:`!!data.photo`,sm:6},textActive:{type:`text`,label:`fritzdm_textPresent`,placeholder:`fritzdm_present`,sm:6},text:{type:`text`,label:`fritzdm_textAbsent`,placeholder:`fritzdm_absent`,sm:6},dimAbsent:{type:`checkbox`,label:`fritzdm_dimAbsent`,default:!0,sm:12},_display:{type:`header`,text:`fritzdm_display`,size:5,newLine:!0,sm:12},showSince:{type:`checkbox`,label:`fritzdm_showSince`,default:!0,sm:12},showLastChange:{type:`checkbox`,label:`fritzdm_showLastChange`,default:!0,sm:12},showHistory:{type:`checkbox`,label:`fritzdm_showHistory`,default:!0,sm:12}}}}}static dialogIdOf(e){return`${e.widget.id}_history`}get dialogId(){return e.dialogIdOf(this.props)}get instance(){return V(this.props.settings.instance)}get personName(){return(this.props.settings.person||``).trim()}get socket(){return this.props.stateContext.getSocket()}get lang(){return this.props.stateContext.language||$.getLanguage()||`en`}componentDidMount(){var e;(e=super.componentDidMount)==null||e.call(this),this.subscribeConnection(),this.lookup(),this.ticker=setInterval(()=>{this.setState({now:Date.now()}),this.state.lookup===`notFound`&&Date.now()-this.lastLookup>=nr&&this.lookup()},tr)}componentDidUpdate(e,t,n){var r;(r=super.componentDidUpdate)==null||r.call(this,e,t,n);let i=V(e.settings.instance)!==this.instance;if(i&&(this.unsubscribeConnection(),this.subscribeConnection()),(i||(e.settings.person||``).trim()!==this.personName)&&this.lookup(),e.openDialogId!==this.props.openDialogId){let t=this.props.openDialogId===this.dialogId;t&&!this.state.historyOpen?this.setState({historyOpen:!0},()=>this.loadHistory()):!t&&e.openDialogId===this.dialogId&&this.state.historyOpen&&this.setState({historyOpen:!1})}this.state.historyOpen&&t.values.history!==void 0&&t.values.history!==this.state.values.history&&this.loadHistory(!0)}componentWillUnmount(){var e;(e=super.componentWillUnmount)==null||e.call(this),this.lookupRun++,this.historyRun++,this.unsubscribePerson(),this.unsubscribeConnection(),this.ticker&&=(clearInterval(this.ticker),null)}lookup(){let e=++this.lookupRun;this.lastLookup=Date.now(),this.unsubscribePerson();let t=this.personName;t?(this.state.lookup!==`notFound`&&this.setState({lookup:`loading`}),Ln(this.socket,this.instance).then(n=>{if(e!==this.lookupRun)return;let r=Rn(n,t)||null;this.setState({person:r,lookup:r?`found`:`notFound`,values:{},history:rr},()=>{r&&(this.subscribePerson(r),this.state.historyOpen&&this.loadHistory())})})):this.setState({person:null,lookup:`none`,values:{},history:rr})}subscribePerson(e){let t=this.props.stateContext;for(let n of Zn){let r=`${e.id}.${n}`,i=(e,t)=>this.onValue(n,t);t.getState(r,i),this.subscriptions.push({id:r,handler:i})}}unsubscribePerson(){let e=this.props.stateContext;for(let{id:t,handler:n}of this.subscriptions)e.removeState(t,n);this.subscriptions=[]}subscribeConnection(){let e=`${this.instance}.info.connection`,t=(e,t)=>{let n=t?t.val:null,r=n==null?null:ir(n);this.setState(e=>e.connected===r?null:{connected:r,indicators:e.indicators?{...e.indicators,connected:r}:e.indicators})};this.props.stateContext.getState(e,t),this.connectionSubscription={id:e,handler:t}}unsubscribeConnection(){this.connectionSubscription&&=(this.props.stateContext.removeState(this.connectionSubscription.id,this.connectionSubscription.handler),null)}onValue(e,t){let n=t?t.val:null;this.setState(t=>t.values[e]===n?null:{values:{...t.values,[e]:n}})}loadHistory(e){let t=this.state.person,n=++this.historyRun;t?(e||this.setState(e=>({history:{...e.history,loading:!0}})),Vn(this.socket,t.id,{count:Qn,days:$n}).then(e=>{n===this.historyRun&&this.setState({history:{...e,loading:!1}})})):this.setState({history:rr})}get canOpenHistory(){return this.props.settings.showHistory!==!1&&!!this.state.person}isTileActive(){return this.present===!0}hasTileAction(){return this.canOpenHistory}onTileClick(){this.openHistory()}renderTileIcon(){return this.renderAvatar(`1em`)}get values(){return this.state.values}get present(){let e=this.values.present;return this.state.lookup!==`found`||e==null?null:ir(e)}get displayName(){var e;return this.props.settings.name||((e=this.state.person)==null?void 0:e.name)||this.personName||$.t(`fritzdm_personWidgetName`)}get statusText(){switch(this.state.lookup){case`none`:return $.t(`fritzdm_noPerson`);case`notFound`:return $.t(`fritzdm_personNotFound`);case`loading`:return`…`}let e=this.present;return e===null?`…`:e?this.props.settings.textActive||$.t(`fritzdm_present`):this.props.settings.text||$.t(`fritzdm_absent`)}statusColor(e){if(this.state.lookup===`notFound`)return e.palette.warning.main;let t=this.present;return t===null?e.palette.text.disabled:t?this.getAccentColor()||e.palette.success.main:this.getInactiveColor()||e.palette.text.disabled}get since(){let e=this.present;return e===null?0:ar(e?this.values.lastArrival:this.values.lastDeparture)}get sinceText(){let e=this.since;return!e||this.props.settings.showSince===!1?``:$.t(`fritzdm_sinceDuration`,Un(Math.max(0,this.state.now-e),this.lang))}get showLastChange(){return this.props.settings.showLastChange!==!1&&this.present!==null}get staleSx(){return this.state.connected===!1?{opacity:.55}:{}}get dimmed(){return this.present===!1&&this.props.settings.dimAbsent!==!1}renderAvatar(e,t=!0){let{photo:n,icon:r,iconActive:i}=this.props.settings,a=this.props.stateContext,o=this.present,s=o?i||r:r||i,c=this.dimmed?{filter:`grayscale(1)`,opacity:.55}:{},l=or(this.displayName),u;return u=n?(0,P.jsx)(`img`,{src:a.getImagePath(n)||n,alt:``,draggable:!1,style:{width:`100%`,height:`100%`,objectFit:`cover`,display:`block`,transition:`filter 0.3s ease, opacity 0.3s ease`,...c}}):s&&Xn?(0,P.jsx)(Z,{component:`span`,sx:{display:`inline-flex`,width:`62%`,height:`62%`,...c},children:(0,P.jsx)(Xn,{src:a.getImagePath(s)||s,style:{width:`100%`,height:`100%`,color:`inherit`},styleUTF8:{fontSize:`calc(${e} * 0.5)`,lineHeight:1}})}):l&&this.state.lookup!==`none`?(0,P.jsx)(Z,{component:`span`,sx:{fontSize:`calc(${e} * 0.38)`,fontWeight:700,letterSpacing:`0.02em`,lineHeight:1},children:l}):(0,P.jsx)(gn,{sx:{fontSize:`calc(${e} * 0.62)`}}),(0,P.jsxs)(Z,{component:`span`,sx:{position:`relative`,display:`inline-flex`,flexShrink:0,width:e,height:e},children:[(0,P.jsx)(Z,{component:`span`,sx:t=>{let r=this.statusColor(t);return{width:`100%`,height:`100%`,boxSizing:`border-box`,borderRadius:`50%`,overflow:`hidden`,display:`flex`,alignItems:`center`,justifyContent:`center`,color:n?void 0:r,backgroundColor:n?`transparent`:p(r,o?.18:.1),border:`max(2px, calc(${e} * 0.04)) solid ${p(r,o?.75:.35)}`,transition:`all 0.3s ease`}},children:u}),t&&this.state.lookup===`found`?(0,P.jsx)(Z,{component:`span`,sx:e=>({position:`absolute`,right:`1%`,bottom:`1%`,width:`26%`,height:`26%`,minWidth:8,minHeight:8,boxSizing:`border-box`,borderRadius:`50%`,backgroundColor:this.statusColor(e),border:`2px solid ${e.palette.background.paper}`})}):null]})}renderName(e,t){return this.props.settings.showName===!1?null:(0,P.jsx)(Q,{ref:this.nameRef,variant:`body2`,sx:n=>({fontWeight:600,lineHeight:1.3,overflow:`hidden`,whiteSpace:`nowrap`,fontSize:e,...c(n)?{textTransform:`uppercase`,letterSpacing:`0.08em`,fontSize:t}:{}}),children:this.displayName})}renderStatus(e,t){let n=t?this.sinceText:``;return(0,P.jsxs)(Z,{title:this.state.lookup===`notFound`?this.notFoundText:void 0,sx:{minWidth:0,fontSize:e,lineHeight:1.35,overflow:`hidden`,whiteSpace:`nowrap`,textOverflow:`ellipsis`,color:`text.secondary`,...this.staleSx},children:[(0,P.jsx)(Z,{component:`span`,sx:e=>({fontWeight:700,color:this.statusColor(e)}),children:this.statusText}),n?(0,P.jsx)(Z,{component:`span`,children:` · ${n}`}):null]})}renderSince(e){let t=this.sinceText;return t?(0,P.jsx)(Q,{component:`div`,noWrap:!0,sx:{fontSize:e,lineHeight:1.3,color:`text.secondary`,...this.staleSx},children:t}):null}get notFoundText(){return $.t(`fritzdm_personNotFoundIn`,this.personName,this.instance)}renderEvent(e,t,n){let r=ar(e===`arrival`?this.values.lastArrival:this.values.lastDeparture),i=$.t(e===`arrival`?`fritzdm_lastArrival`:`fritzdm_lastDeparture`),a=e===`arrival`?_n:vn,o=Wn(r,this.lang);return(0,P.jsxs)(Z,{component:`span`,title:r?`${i}: ${new Date(r).toLocaleString(sr(this.lang))}`:i,sx:{display:`inline-flex`,alignItems:`center`,gap:`0.3em`,minWidth:0,fontSize:t,lineHeight:1.3,whiteSpace:`nowrap`,color:`text.secondary`,fontVariantNumeric:`tabular-nums`,...this.staleSx},children:[(0,P.jsx)(a,{sx:t=>({fontSize:`1.15em`,flexShrink:0,color:e===`arrival`?this.getAccentColor()||t.palette.success.main:t.palette.text.disabled})}),n?(0,P.jsx)(Z,{component:`span`,children:i}):null,(0,P.jsx)(Z,{component:`span`,sx:{fontWeight:600,color:r?`text.primary`:`text.disabled`,overflow:`hidden`,textOverflow:`ellipsis`},children:o})]})}renderEvents(e,t){return this.showLastChange?(0,P.jsxs)(Z,{sx:{display:`flex`,alignItems:`center`,gap:`0.9em`,minWidth:0,fontSize:e,overflow:`hidden`},children:[this.renderEvent(`arrival`,`inherit`,t),this.renderEvent(`departure`,`inherit`,t)]}):null}renderToday(e){let t=ar(this.values.presentToday),n=ar(this.values.absentToday);if(this.state.lookup!==`found`||t+n<=0)return null;let r=t/(t+n)*100,i=Un(t*6e4,this.lang),a=Un(n*6e4,this.lang);return(0,P.jsxs)(Z,{sx:{display:`flex`,flexDirection:`column`,gap:`4px`,minWidth:0,fontSize:e,...this.staleSx},children:[(0,P.jsxs)(Z,{sx:{display:`flex`,justifyContent:`space-between`,gap:1,color:`text.secondary`},children:[(0,P.jsxs)(Z,{component:`span`,sx:{overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},children:[`${$.t(`fritzdm_presentToday`)}: `,(0,P.jsx)(Z,{component:`span`,sx:{fontWeight:600,color:`text.primary`},children:i})]}),(0,P.jsx)(Z,{component:`span`,sx:{whiteSpace:`nowrap`},title:`${$.t(`fritzdm_absentToday`)}: ${a}`,children:a})]}),(0,P.jsx)(Z,{title:`${$.t(`fritzdm_presentToday`)}: ${i} · ${$.t(`fritzdm_absentToday`)}: ${a}`,sx:{height:4,borderRadius:2,overflow:`hidden`,backgroundColor:`rgba(127,127,127,0.22)`},children:(0,P.jsx)(Z,{sx:e=>({width:`${r}%`,height:`100%`,borderRadius:`inherit`,backgroundColor:this.getAccentColor()||e.palette.success.main,transition:`width 0.6s ease`})})})]})}renderTileHistory(e){if(this.props.settings.showHistory===!1||this.state.lookup!==`found`)return null;let t=zn(this.values.history).slice(0,er);return t.length?(0,P.jsx)(Z,{sx:{display:`flex`,flexDirection:`column`,gap:`max(2px, 0.8cqi)`,minWidth:0,fontSize:e,...this.staleSx},children:t.map(e=>{let t=e.present?_n:vn;return(0,P.jsxs)(Z,{sx:{display:`flex`,alignItems:`center`,gap:`0.45em`,minWidth:0,lineHeight:1.3},children:[(0,P.jsx)(t,{sx:t=>({fontSize:`1.1em`,flexShrink:0,color:e.present?this.getAccentColor()||t.palette.success.main:t.palette.text.disabled})}),(0,P.jsx)(Z,{component:`span`,sx:{color:`text.secondary`,flexShrink:0},children:$.t(e.present?`fritzdm_came`:`fritzdm_left`)}),(0,P.jsx)(Z,{component:`span`,sx:{ml:`auto`,fontWeight:600,whiteSpace:`nowrap`,overflow:`hidden`,textOverflow:`ellipsis`,fontVariantNumeric:`tabular-nums`},children:Wn(e.ts,this.lang)})]},`${e.ts}_${e.present}`)})}):null}renderTileIndicators(){return(0,P.jsx)(`div`,{onClick:m,onKeyDown:m,style:{display:`contents`},children:this.renderIndicators(this.renderSettingsButton())})}renderFrame(e,t,n){let r=this.isTileActive(),i=this.canOpenHistory;return(0,P.jsxs)(Z,{id:String(this.props.widget.id),className:this.getWidgetClass(),sx:t=>_(t,e),children:[e===`2x1`?(0,P.jsx)(Z,{sx:{width:`calc(50% - 6px)`,aspectRatio:`1`}}):null,(0,P.jsxs)(Z,{role:i?`button`:void 0,tabIndex:i?0:void 0,"aria-label":i?`${this.displayName} - ${$.t(`fritzdm_showHistoryOf`)}`:`${this.displayName}: ${this.statusText}`,onClick:i?this.openHistory:void 0,onKeyDown:i?this.onTileKeyDown:void 0,sx:n=>({boxSizing:`border-box`,position:e===`2x1`?`absolute`:`relative`,...e===`2x1`?{inset:0}:{},width:`100%`,overflow:`hidden`,userSelect:`none`,cursor:i?`pointer`:`default`,textAlign:`left`,color:`text.primary`,outline:`none`,...d(n,r,this.getAccentColor()||n.palette.success.main,i,this.getInactiveColor()),"&:focus-visible":{boxShadow:`0 0 0 2px ${this.statusColor(n)} inset`},...t(n)}),children:[n,this.renderTileIndicators()]}),this.state.historyOpen?(0,P.jsx)(`span`,{style:{display:`contents`},onClick:m,onPointerDown:m,onMouseDown:m,onTouchStart:m,onKeyDown:m,children:this.renderHistoryDialog()}):null]})}renderHistoryRow(e,t,n){let r=sr(this.lang),i=e.present?_n:vn,a=Un(Math.max(0,t-e.ts),this.lang),o=n?$.t(`fritzdm_sinceDuration`,a):$.t(e.present?`fritzdm_stayed`:`fritzdm_wasAway`,a);return(0,P.jsxs)(Z,{sx:{display:`flex`,alignItems:`center`,gap:1.5,py:.75,minWidth:0},children:[(0,P.jsx)(Z,{sx:t=>{let n=e.present?this.getAccentColor()||t.palette.success.main:t.palette.text.secondary;return{width:32,height:32,flexShrink:0,borderRadius:`50%`,display:`flex`,alignItems:`center`,justifyContent:`center`,color:n,backgroundColor:p(n,.14)}},children:(0,P.jsx)(i,{sx:{fontSize:18}})}),(0,P.jsxs)(Z,{sx:{flex:1,minWidth:0},children:[(0,P.jsx)(Q,{noWrap:!0,sx:{fontSize:`0.9rem`,fontWeight:600,lineHeight:1.3},children:$.t(e.present?`fritzdm_came`:`fritzdm_left`)}),(0,P.jsx)(Q,{noWrap:!0,variant:`caption`,component:`div`,sx:{color:`text.secondary`,fontStyle:n?`italic`:`normal`,lineHeight:1.3},children:o})]}),(0,P.jsx)(Q,{title:new Date(e.ts).toLocaleString(r),sx:{fontSize:`0.9rem`,fontWeight:600,fontVariantNumeric:`tabular-nums`,flexShrink:0},children:new Date(e.ts).toLocaleTimeString(r,{hour:`2-digit`,minute:`2-digit`})})]},`${e.ts}_${e.present}`)}renderHistoryList(){let{events:e,loading:t}=this.state.history;if(t&&!e.length)return(0,P.jsx)(Z,{sx:{display:`flex`,justifyContent:`center`,py:4},children:(0,P.jsx)(Yn,{size:28})});if(!e.length)return(0,P.jsx)(Q,{sx:{py:3,textAlign:`center`,color:`text.secondary`,fontSize:`0.9rem`},children:$.t(`fritzdm_noHistory`)});let n=[];return e.forEach((t,r)=>{let i=cr(t.ts,this.lang),a=r===0?this.state.now:e[r-1].ts,o=r===0&&this.present===t.present,s=this.renderHistoryRow(t,a,o),c=n[n.length-1];(c==null?void 0:c.day)===i?c.rows.push(s):n.push({day:i,rows:[s]})}),(0,P.jsx)(Z,{sx:{opacity:t?.6:1,transition:`opacity 0.2s ease`},children:n.map(e=>(0,P.jsxs)(Z,{sx:{mb:1.5},children:[(0,P.jsx)(Q,{component:`div`,sx:e=>({py:.5,fontSize:`0.75rem`,fontWeight:700,letterSpacing:`0.04em`,textTransform:`uppercase`,color:`text.secondary`,borderBottom:`1px solid ${p(e.palette.text.primary,.08)}`}),children:e.day}),e.rows]},e.day))})}renderHistoryDialog(){let{source:e,instance:t,events:n}=this.state.history,r=String(this.values.devices??``).trim(),i=e===`history`?$.t(`fritzdm_historyFrom`,t||`history`):e===`adapter`?$.t(`fritzdm_historyFromAdapter`):``;return(0,P.jsxs)(Gn,{open:!0,onClose:this.closeHistory,maxWidth:`xs`,fullWidth:!0,"aria-labelledby":`${this.dialogId}-title`,slotProps:{paper:{sx:{maxHeight:`min(760px, calc(100dvh - 32px))`,"@media (max-width: 599.95px)":{m:1,width:`calc(100% - 16px)`}}}},children:[(0,P.jsxs)(Kn,{id:`${this.dialogId}-title`,component:`div`,sx:{display:`flex`,alignItems:`center`,gap:1.5,pr:1,py:1.5},children:[this.renderAvatar(`44px`),(0,P.jsxs)(Z,{sx:{flex:1,minWidth:0},children:[(0,P.jsx)(Q,{component:`h2`,noWrap:!0,sx:{fontSize:`1.05rem`,fontWeight:600,lineHeight:1.3},children:this.displayName}),this.renderStatus(`0.8rem`,!0)]}),(0,P.jsx)(Jn,{onClick:()=>this.loadHistory(),title:$.t(`fritzdm_refresh`),"aria-label":$.t(`fritzdm_refresh`),disabled:this.state.history.loading,children:(0,P.jsx)(bn,{})}),(0,P.jsx)(Jn,{onClick:this.closeHistory,title:$.t(`fritzdm_close`),"aria-label":$.t(`fritzdm_close`),children:(0,P.jsx)(mn,{})})]}),(0,P.jsxs)(qn,{sx:{pt:0,display:`flex`,flexDirection:`column`,gap:1.5},children:[this.renderToday(`0.8rem`),r&&this.present?(0,P.jsxs)(Z,{sx:{display:`flex`,alignItems:`center`,gap:.75,color:`text.secondary`,fontSize:`0.8rem`,minWidth:0},children:[(0,P.jsx)(xn,{sx:{fontSize:`1.2em`,flexShrink:0}}),(0,P.jsx)(Z,{component:`span`,sx:{overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},title:r,children:r})]}):null,(0,P.jsxs)(Z,{sx:{display:`flex`,alignItems:`center`,gap:.75,mt:.5},children:[(0,P.jsx)(yn,{sx:{fontSize:18,color:`text.secondary`}}),(0,P.jsx)(Q,{sx:{fontSize:`0.85rem`,fontWeight:700},children:$.t(`fritzdm_historyTitle`)})]}),(0,P.jsx)(Z,{sx:{minHeight:0},children:this.renderHistoryList()}),i&&n.length?(0,P.jsx)(Q,{variant:`caption`,sx:{color:`text.disabled`,textAlign:`right`},children:i}):null]})]})}renderCompact(){return this.renderFrame(`1x1`,e=>({display:`flex`,flexDirection:`column`,justifyContent:`space-between`,aspectRatio:`1`,padding:c(e)?`max(12px, 8cqi)`:`max(14px, 9cqi)`}),(0,P.jsxs)(P.Fragment,{children:[(0,P.jsx)(Z,{sx:{display:`flex`,alignItems:`flex-start`,minHeight:0},children:this.renderAvatar(`max(40px, 32cqi)`)}),(0,P.jsxs)(Z,{sx:{minWidth:0},children:[this.renderName(`max(0.85rem, 9cqi)`,`max(0.68rem, 6.8cqi)`),this.renderStatus(`max(0.7rem, 7.2cqi)`,!1),this.renderSince(`max(0.62rem, 6.2cqi)`)]})]}))}renderWide(){let e=this.renderEvents(`0.68rem`,!1);return this.renderFrame(`2x0.5`,e=>({display:`flex`,alignItems:`center`,gap:`max(10px, 3cqi)`,height:80,padding:c(e)?`8px 12px`:`8px 14px`}),(0,P.jsxs)(P.Fragment,{children:[this.renderAvatar(`48px`),(0,P.jsxs)(Z,{sx:{flex:1,minWidth:0,display:`flex`,flexDirection:`column`,gap:`2px`},children:[(0,P.jsx)(Z,{sx:{pr:`26px`,minWidth:0},children:this.renderName(`0.9rem`,`0.74rem`)}),this.renderStatus(`0.74rem`,!0),e]})]}))}renderWideTall(){return this.renderFrame(`2x1`,e=>({display:`flex`,flexDirection:`column`,justifyContent:`space-between`,gap:`6px`,height:`100%`,padding:c(e)?`max(12px, 3.5cqi)`:`max(14px, 4cqi)`}),(0,P.jsxs)(P.Fragment,{children:[(0,P.jsxs)(Z,{sx:{display:`flex`,alignItems:`center`,gap:`max(12px, 3.5cqi)`,minWidth:0,flex:1},children:[this.renderAvatar(`max(52px, 19cqi)`),(0,P.jsxs)(Z,{sx:{flex:1,minWidth:0,pr:`20px`},children:[this.renderName(`max(0.95rem, 5.4cqi)`,`max(0.76rem, 3.8cqi)`),this.renderStatus(`max(0.78rem, 3.9cqi)`,!1),this.renderSince(`max(0.7rem, 3.3cqi)`)]})]}),this.renderEvents(`max(0.68rem, 3.1cqi)`,!0)]}))}renderHuge(){let e=this.canOpenHistory,t=this.renderTileHistory(`max(0.72rem, 2.9cqi)`);return this.renderFrame(`2x2`,e=>({display:`flex`,flexDirection:`column`,gap:`max(8px, 2.6cqi)`,aspectRatio:`1`,padding:c(e)?`max(14px, 4.5cqi)`:`max(16px, 5cqi)`}),(0,P.jsxs)(P.Fragment,{children:[(0,P.jsxs)(Z,{sx:{display:`flex`,alignItems:`center`,gap:`max(12px, 3.5cqi)`,minWidth:0,pr:`26px`},children:[this.renderAvatar(`max(60px, 22cqi)`),(0,P.jsxs)(Z,{sx:{flex:1,minWidth:0},children:[this.renderName(`max(1rem, 5.6cqi)`,`max(0.8rem, 4cqi)`),this.renderStatus(`max(0.82rem, 3.8cqi)`,!1),this.renderSince(`max(0.74rem, 3.2cqi)`)]})]}),this.renderEvents(`max(0.72rem, 3cqi)`,!0),this.renderToday(`max(0.68rem, 2.7cqi)`),t,e?(0,P.jsxs)(Z,{sx:e=>({mt:`auto`,pt:`max(6px, 1.8cqi)`,borderTop:`1px solid ${p(e.palette.text.primary,.1)}`,display:`flex`,alignItems:`center`,gap:.75,color:`text.secondary`,fontSize:`max(0.72rem, 2.9cqi)`,fontWeight:600,"& .MuiSvgIcon-root":{fontSize:`1.3em`}}),children:[(0,P.jsx)(yn,{}),(0,P.jsx)(Z,{component:`span`,sx:{flex:1,minWidth:0,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},children:$.t(`fritzdm_historyTitle`)}),(0,P.jsx)(hn,{})]}):null]}))}}};export{lr as default};