iobroker.tr-064 5.1.6 → 5.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (105) hide show
  1. package/README.md +30 -8
  2. package/admin/custom/.vite/manifest.json +68 -68
  3. package/admin/custom/assets/Components-DnyXLngv.js +1 -0
  4. package/admin/custom/assets/MeshTopology-DdxCvD6W.js +4 -0
  5. package/admin/custom/assets/_virtual_mf-localSharedImportMap___mfe_internal__ConfigCustomTr064Set__mf_owner__1-C-7VEH2M.js +1 -0
  6. package/admin/custom/assets/{_virtual_mf___mfe_internal__ConfigCustomTr064Set__mf_owner__259378411809170__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-DdhKfc_O.js → _virtual_mf___mfe_internal__ConfigCustomTr064Set__mf_owner__80542807241481__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-DwHxH2Tb.js} +96 -96
  7. package/admin/custom/assets/_virtual_mf___mfe_internal__ConfigCustomTr064Set__mf_owner__80542807241481__loadShare__shared-C3F6xhja.js +2 -0
  8. package/admin/custom/assets/_virtual_mf___mfe_internal__ConfigCustomTr064Set__mf_owner__80542807241481__prebuild___mf_0_iobroker_mf_1_json_mf_2_config__prebuild__-B5JQBr75.js +122 -0
  9. package/admin/custom/assets/{_virtual_mf___mfe_internal__ConfigCustomTr064Set__mf_owner__259378411809170__prebuild__react_mf_2_dom_mf_1_client__prebuild__-BInMjdwk.js → _virtual_mf___mfe_internal__ConfigCustomTr064Set__mf_owner__80542807241481__prebuild__react_mf_2_dom_mf_1_client__prebuild__-D8dfJFpB.js} +1 -1
  10. package/admin/custom/assets/{dist-DaURp8MG.js → dist-DiU1y0R9.js} +1 -1
  11. package/admin/custom/assets/helpers-Dot7vgQQ.js +1 -0
  12. package/admin/custom/assets/{hostInit-C4-y6noJ.js → hostInit-C9ukT_fL.js} +1 -1
  13. package/admin/custom/assets/{lib-Bz6IScan.js → lib-C0xNRO2P.js} +2 -2
  14. package/admin/custom/assets/pendingShares-CJcHAY7c.js +2 -0
  15. package/admin/custom/assets/{utils-sDCNnUxL.js → utils-towTPKqG.js} +1 -1
  16. package/admin/custom/assets/vite-preload-helper-BbbETgeG.js +1 -0
  17. package/admin/custom/customComponents.js +2 -2
  18. package/admin/custom/mf-manifest.json +1 -1
  19. package/admin/dm-widgets/.vite/manifest.json +31 -31
  20. package/admin/dm-widgets/assets/Components-BjwJD5XF.js +4 -0
  21. package/admin/dm-widgets/assets/{_virtual_mf-localSharedImportMap___mfe_internal__DevicesWidgetTr064Set__mf_owner__1-BF5b7ZEP.js → _virtual_mf-localSharedImportMap___mfe_internal__DevicesWidgetTr064Set__mf_owner__1-BLwubH36.js} +1 -1
  22. package/admin/dm-widgets/assets/{_virtual_mf___mfe_internal__DevicesWidgetTr064Set__mf_owner__212620212104624__loadShare__shared-8564RYVs.js → _virtual_mf___mfe_internal__DevicesWidgetTr064Set__mf_owner__212620212104624__loadShare__shared-4SQSrCDF.js} +1 -1
  23. package/admin/dm-widgets/assets/{dist-DAUjjciP.js → dist-BkS8HKl2.js} +1 -1
  24. package/admin/dm-widgets/assets/helpers-ClFTp7rx.js +1 -0
  25. package/admin/dm-widgets/assets/{hostInit-DQpykEkM.js → hostInit-DEK6nxUq.js} +1 -1
  26. package/admin/dm-widgets/assets/{no-page-C-g_PIyM.js → no-page-DXBOpctw.js} +2 -2
  27. package/admin/dm-widgets/assets/{pendingShares-CNny_2LZ.js → pendingShares-BZTJ8U1k.js} +2 -2
  28. package/admin/dm-widgets/assets/translations-BZhya0jA.js +1 -0
  29. package/{widgets/tr-064/assets/utils-DEUY4RDL.js → admin/dm-widgets/assets/utils-D1AcFl0O.js} +1 -1
  30. package/admin/dm-widgets/assets/vite-preload-helper-BbbETgeG.js +1 -0
  31. package/admin/dm-widgets/customDevices.js +2 -2
  32. package/admin/dm-widgets/mf-manifest.json +1 -1
  33. package/admin/dm-widgets/person.svg +6 -0
  34. package/admin/i18n/de.json +14 -0
  35. package/admin/i18n/en.json +14 -0
  36. package/admin/i18n/es.json +14 -0
  37. package/admin/i18n/fr.json +14 -0
  38. package/admin/i18n/it.json +14 -0
  39. package/admin/i18n/nl.json +14 -0
  40. package/admin/i18n/pl.json +14 -0
  41. package/admin/i18n/pt.json +14 -0
  42. package/admin/i18n/ru.json +14 -0
  43. package/admin/i18n/uk.json +14 -0
  44. package/admin/i18n/zh-cn.json +14 -0
  45. package/admin/jsonConfig.json +118 -3
  46. package/build/lib/presence.js +436 -0
  47. package/build/lib/presence.js.map +1 -0
  48. package/build/lib/tr064.js +20 -5
  49. package/build/lib/tr064.js.map +1 -1
  50. package/build/lib/utils.js +21 -0
  51. package/build/lib/utils.js.map +1 -1
  52. package/build/main.js +35 -2
  53. package/build/main.js.map +1 -1
  54. package/io-package.json +39 -15
  55. package/package.json +1 -1
  56. package/widgets/tr-064/.vite/manifest.json +134 -110
  57. package/widgets/tr-064/assets/{Generic-CB13arWC.js → Generic-Cl0kKUW7.js} +1 -1
  58. package/widgets/tr-064/assets/{MeshView-bJbQ9vK6.js → MeshView-D8u-FaDb.js} +1 -1
  59. package/widgets/tr-064/assets/PresenceSelect-aqA9gP3R.js +1 -0
  60. package/widgets/tr-064/assets/{Tr064FritzBox-BBZpOf_u.js → Tr064FritzBox-DYI1xQht.js} +1 -1
  61. package/widgets/tr-064/assets/{Tr064Mesh-CeNXlM2a.js → Tr064Mesh-BOifuPq4.js} +1 -1
  62. package/widgets/tr-064/assets/Tr064Person-Dh3sNGqw.js +1 -0
  63. package/widgets/tr-064/assets/Tr064Presence-B4AW5nzP.js +1 -0
  64. package/widgets/tr-064/assets/{_virtual_mf-localSharedImportMap___mfe_internal__vis2Tr064Widgets__mf_owner__1-mmPQI-0W.js → _virtual_mf-localSharedImportMap___mfe_internal__vis2Tr064Widgets__mf_owner__1-DEqHJtFZ.js} +1 -1
  65. package/widgets/tr-064/assets/_virtual_mf___mfe_internal__vis2Tr064Widgets__mf_owner__177553934835196__loadShare__shared-ZlVQj1oA.js +2 -0
  66. package/widgets/tr-064/assets/{_virtual_mf___mfe_internal__vis2Tr064Widgets__mf_owner__105226804110546__prebuild___mf_0_emotion_mf_1_react__prebuild__-BdRMcX2u.js → _virtual_mf___mfe_internal__vis2Tr064Widgets__mf_owner__177553934835196__prebuild___mf_0_emotion_mf_1_react__prebuild__-CRl1X4pK.js} +1 -1
  67. package/widgets/tr-064/assets/_virtual_mf___mfe_internal__vis2Tr064Widgets__mf_owner__177553934835196__prebuild___mf_0_mui_mf_1_material__prebuild__-UlVF-Z6-.js +245 -0
  68. package/widgets/tr-064/assets/{_virtual_mf___mfe_internal__vis2Tr064Widgets__mf_owner__105226804110546__prebuild___mf_0_mui_mf_1_private_mf_2_theming__prebuild__-CimLpZsS.js → _virtual_mf___mfe_internal__vis2Tr064Widgets__mf_owner__177553934835196__prebuild___mf_0_mui_mf_1_private_mf_2_theming__prebuild__-huudgrZj.js} +1 -1
  69. package/widgets/tr-064/assets/defineProperty-Ba_vd0xC.js +10 -0
  70. package/widgets/tr-064/assets/{dist-DAUjjciP.js → dist-BkS8HKl2.js} +1 -1
  71. package/widgets/tr-064/assets/{emotion-use-insertion-effect-with-fallbacks.browser.esm-Bsd24U4Y.js → emotion-use-insertion-effect-with-fallbacks.browser.esm-mAEKd7Xg.js} +1 -1
  72. package/widgets/tr-064/assets/helpers-ClFTp7rx.js +1 -0
  73. package/widgets/tr-064/assets/{hostInit-CaekyPEZ.js → hostInit-DiVyQxZ5.js} +1 -1
  74. package/widgets/tr-064/assets/{pendingShares-D9r9YlHr.js → pendingShares-dmF1p6Vs.js} +2 -2
  75. package/widgets/tr-064/assets/translations-Ck6haIQU.js +1 -0
  76. package/{admin/dm-widgets/assets/utils-DEUY4RDL.js → widgets/tr-064/assets/utils-D1AcFl0O.js} +1 -1
  77. package/widgets/tr-064/assets/vite-preload-helper-BbbETgeG.js +1 -0
  78. package/widgets/tr-064/customWidgets.js +2 -2
  79. package/widgets/tr-064/img/prev_tr064_person.png +0 -0
  80. package/widgets/tr-064/mf-manifest.json +1 -1
  81. package/admin/custom/assets/Components-NzvMTX4W.js +0 -1
  82. package/admin/custom/assets/MeshTopology-mEnzehAC.js +0 -4
  83. package/admin/custom/assets/_virtual_mf-localSharedImportMap___mfe_internal__ConfigCustomTr064Set__mf_owner__1-Cenjta-f.js +0 -1
  84. package/admin/custom/assets/_virtual_mf___mfe_internal__ConfigCustomTr064Set__mf_owner__259378411809170__loadShare__shared-C-z_ew1q.js +0 -2
  85. package/admin/custom/assets/_virtual_mf___mfe_internal__ConfigCustomTr064Set__mf_owner__259378411809170__prebuild___mf_0_iobroker_mf_1_json_mf_2_config__prebuild__-DEVnYCRU.js +0 -122
  86. package/admin/custom/assets/helpers-B6m49UKI.js +0 -1
  87. package/admin/custom/assets/pendingShares-_Lyy3-xQ.js +0 -2
  88. package/admin/custom/assets/vite-preload-helper-DjNwdemH.js +0 -1
  89. package/admin/dm-widgets/assets/Components-BjcNBG0-.js +0 -4
  90. package/admin/dm-widgets/assets/helpers-LL3aTdF3.js +0 -1
  91. package/admin/dm-widgets/assets/translations-CZMfeIvV.js +0 -1
  92. package/admin/dm-widgets/assets/vite-preload-helper-DjNwdemH.js +0 -1
  93. package/widgets/tr-064/assets/Tr064Presence-Br3Z1Vay.js +0 -1
  94. package/widgets/tr-064/assets/_virtual_mf___mfe_internal__vis2Tr064Widgets__mf_owner__105226804110546__loadShare__shared-Db_nfl79.js +0 -2
  95. package/widgets/tr-064/assets/_virtual_mf___mfe_internal__vis2Tr064Widgets__mf_owner__105226804110546__prebuild___mf_0_mui_mf_1_material__prebuild__-DxKWlQDg.js +0 -245
  96. package/widgets/tr-064/assets/defineProperty-DeZ0csto.js +0 -10
  97. package/widgets/tr-064/assets/helpers-LL3aTdF3.js +0 -1
  98. package/widgets/tr-064/assets/translations-CqowGBNV.js +0 -1
  99. package/widgets/tr-064/assets/vite-preload-helper-DjNwdemH.js +0 -1
  100. /package/admin/custom/assets/{_virtual_mf___mfe_internal__ConfigCustomTr064Set__mf_owner__259378411809170__prebuild__react_mf_1_jsx_mf_2_runtime__prebuild__-B_v57Qfr.js → _virtual_mf___mfe_internal__ConfigCustomTr064Set__mf_owner__80542807241481__prebuild__react_mf_1_jsx_mf_2_runtime__prebuild__-B_v57Qfr.js} +0 -0
  101. /package/widgets/tr-064/assets/{_virtual_mf___mfe_internal__vis2Tr064Widgets__mf_owner__105226804110546__prebuild__react__prebuild__-BfR62PXi.js → _virtual_mf___mfe_internal__vis2Tr064Widgets__mf_owner__177553934835196__prebuild__react__prebuild__-BfR62PXi.js} +0 -0
  102. /package/widgets/tr-064/assets/{_virtual_mf___mfe_internal__vis2Tr064Widgets__mf_owner__105226804110546__prebuild__react_mf_1_jsx_mf_2_dev_mf_2_runtime__prebuild__-Cbwz_BNS.js → _virtual_mf___mfe_internal__vis2Tr064Widgets__mf_owner__177553934835196__prebuild__react_mf_1_jsx_mf_2_dev_mf_2_runtime__prebuild__-Cbwz_BNS.js} +0 -0
  103. /package/widgets/tr-064/assets/{_virtual_mf___mfe_internal__vis2Tr064Widgets__mf_owner__105226804110546__prebuild__react_mf_1_jsx_mf_2_runtime__prebuild__-ls7Ro8xU.js → _virtual_mf___mfe_internal__vis2Tr064Widgets__mf_owner__177553934835196__prebuild__react_mf_1_jsx_mf_2_runtime__prebuild__-ls7Ro8xU.js} +0 -0
  104. /package/widgets/tr-064/assets/{_virtual_mf___mfe_internal__vis2Tr064Widgets__mf_owner__105226804110546__prebuild__react_mf_2_dom__prebuild__-C80Z9tvh.js → _virtual_mf___mfe_internal__vis2Tr064Widgets__mf_owner__177553934835196__prebuild__react_mf_2_dom__prebuild__-C80Z9tvh.js} +0 -0
  105. /package/widgets/tr-064/assets/{_virtual_mf___mfe_internal__vis2Tr064Widgets__mf_owner__105226804110546__prebuild__react_mf_2_dom_mf_1_client__prebuild__-DIVBnK0o.js → _virtual_mf___mfe_internal__vis2Tr064Widgets__mf_owner__177553934835196__prebuild__react_mf_2_dom_mf_1_client__prebuild__-DIVBnK0o.js} +0 -0
package/README.md CHANGED
@@ -11,7 +11,7 @@
11
11
  [![Downloads](https://img.shields.io/npm/dm/iobroker.tr-064.svg)](https://www.npmjs.com/package/iobroker.tr-064)
12
12
 
13
13
  > [!IMPORTANT]
14
- > This adapter cannot be installed from github
14
+ > This adapter cannot be installed from GitHub
15
15
 
16
16
  **This adapter uses the Sentry libraries. These libraries report exceptions and code errors automatically to the developers.** For more details, and for information about how to switch off the error reporting, see the [documentation of the Sentry plugin](https://github.com/ioBroker/plugin-sentry#plugin-sentry). The Sentry reporting is used from js-controller 3.0 on.
17
17
 
@@ -76,6 +76,28 @@ Users report that the detection also works reliably for iOS devices, for example
76
76
 
77
77
  The ioBroker community has published a script that uses this information of the adapter to trigger actions. Examples are: switch off everything automatically after all persons have left the home, show the number of persons that are at home, or show the status of a person in VIS. See the [thread in the ioBroker forum](https://forum.iobroker.net/topic/4538/anwesenheitscontrol-basierend-auf-tr64-adapter-script) (in German).
78
78
 
79
+ ### Persons, groups, guests (like fb-checkpresence)
80
+
81
+ The tab "Persons" watches persons instead of single devices. Every row is one person with a name, an optional group and the MAC or IP addresses of all its devices, separated by commas (e.g. `AA:BB:CC:DD:EE:FF, 192.168.178.23`). An IP address only works if the Fritz!Box always gives the device the same address ("Always assign this IPv4 address" in the Fritz!Box); a smartphone with a private Wi-Fi address is better watched by IP than by its changing MAC. A person is present as soon as one of its devices is active. Everything is written below `tr-064.0.presence`:
82
+
83
+ | State | Content |
84
+ |----------------------------------------------------------------------|----------------------------------------------------------------------------------------------------|
85
+ | `persons.<name>.present` | `true` while the person is at home |
86
+ | `persons.<name>.lastArrival` / `lastDeparture` | when the person came / left the last time (ms, `0` = not known yet) |
87
+ | `persons.<name>.presentSince` / `absentSince` | minutes since then, `0` in the other state |
88
+ | `persons.<name>.presentToday` / `absentToday` | minutes present / absent since midnight |
89
+ | `persons.<name>.devices` | the active devices of the person |
90
+ | `persons.<name>.history` | the last comings and goings as JSON, the newest first: `[{"ts": 1791799596991, "present": false}]` |
91
+ | `present`, `allPresent` | anybody / everybody is at home |
92
+ | `presentCount`, `absentCount`, `presentNames`, `absentNames`, `json` | who is at home and who is not |
93
+ | `groups.<group>.*` | the same as above for the persons of one group |
94
+ | `guests.present`, `count`, `names`, `json` | active devices of the guest network (option "Detect guests") |
95
+ | `unknown.present`, `count`, `names`, `json` | active devices which are neither in "Devices" nor in "Persons" (option "Detect unknown devices") |
96
+
97
+ A smartphone switches its Wi-Fi off in standby. With "Absent after (min)" a person counts as absent only when all its devices are inactive for these minutes; `lastDeparture` is then the moment the last device went offline. The first reading after the setup is no event: `lastArrival` and `lastDeparture` stay `0` until the person comes or leaves for the first time. Times, sums and the history survive a restart of the adapter.
98
+
99
+ For a longer history, switch on a history instance (history, sql or influxdb) for `persons.<name>.present`, the widgets read the events from there. The objects of a person who is removed from the table are deleted on the next start.
100
+
79
101
  ### Answering machine (in German: `Anrufbeantworter`)
80
102
 
81
103
  You can switch the answering machine on and off. With the state `cbIndex` you select the number of the answering machine.
@@ -136,9 +158,10 @@ vis-2 (widget set "FRITZ!Box"):
136
158
 
137
159
  - **FRITZ!Box** (`Tr064FritzBox`): a tile like in ioBroker.devices with the online state, model, kind of the connection, current download and upload, external IP, WLAN and guest WLAN, new messages and missed calls. It chooses its layout by its size, from a small square to a large card with the use of the line. Optionally the chips of the WLAN and the guest WLAN switch them (`switchWlan`).
138
160
  - **Mesh topology** (`Tr064Mesh`): the mesh topology as a graphic or table which fills the widget, refreshed while it is visible.
139
- - **Presence** (`Tr064Presence`): the configured devices with present/away, access point and band.
161
+ - **Presence** (`Tr064Presence`): the configured devices with present/away, access point and band - or, with "Mode" = persons, the persons of the tab "Persons" (optionally of one group) with since when they are at home or away, and the number of guests.
162
+ - **Person** (`Tr064Person`): one person, selected by its name. Icon, picture and text for present and for absent are free to choose, as well as the colors. It shows since when the person is at home or away, when it came and left the last time, the sums of today and - if the widget is high enough - the last comings and goings. They come from a history instance (history, sql, influxdb) if one logs `present`, otherwise from the state `history` of the adapter.
140
163
 
141
- ioBroker.devices: the widget **FRITZ!Box** can be added to a category in all four sizes (1x1, 2x0.5, 2x1, 2x2); in the settings of the widget the instance of the adapter is selected.
164
+ ioBroker.devices: the widget **FRITZ!Box** can be added to a category in all four sizes (1x1, 2x0.5, 2x1, 2x2); in the settings of the widget the instance of the adapter is selected. The widget **Person** shows one person (selected by its name) with photo or icon, the texts and colors of the settings, since when and the last arrival and departure; a click opens the comings and goings of the last days.
142
165
 
143
166
  The widgets need the states of the adapter version with these widgets (`states.boxModel`, `states.wan*`, ...) and the running instance for the mesh topology.
144
167
 
@@ -198,6 +221,10 @@ If you switch from the adapter tr-064-community, you can copy the complete devic
198
221
  Placeholder for the next version (at the beginning of the line):
199
222
  ### **WORK IN PROGRESS**
200
223
  -->
224
+ ### 5.2.0 (2026-10-12)
225
+ - (@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
226
+ - (@GermanBluefox) New widget "Person" for vis-2 and `ioBroker.devices`, the person is selected by name; the vis-2 widget "Presence" can list persons
227
+
201
228
  ### 5.1.6 (2026-10-07)
202
229
  - (@GermanBluefox) The dialogs "Rename device" of the mesh topology and "Reset missed calls" of the widget and the device card show the button "Cancel" on the right side, grey and with a close icon, like everywhere in ioBroker
203
230
 
@@ -217,11 +244,6 @@ If you switch from the adapter tr-064-community, you can copy the complete devic
217
244
  - (@GermanBluefox) The data rates of the mesh topology were shown as download and upload the wrong way round for every link whose first node is the access point - the FRITZ!Box reports `rx`/`tx` from the view of its own node 1, which is not always the upstream side
218
245
  - (@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
219
246
 
220
- ### 5.1.1 (2026-09-29)
221
- - (@GermanBluefox) 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
222
- - (@GermanBluefox) A 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
223
- - (@GermanBluefox) New message `setHostName` (`sendTo('tr-064.0', 'setHostName', { mac, name })`) which renames a device in the FRITZ!Box
224
-
225
247
  [Older changelogs can be found there](CHANGELOG_OLD.md)
226
248
 
227
249
  ## License
@@ -1,75 +1,75 @@
1
1
  {
2
- "_MeshTopology-mEnzehAC.js": {
3
- "file": "assets/MeshTopology-mEnzehAC.js",
2
+ "_MeshTopology-DdxCvD6W.js": {
3
+ "file": "assets/MeshTopology-DdxCvD6W.js",
4
4
  "name": "MeshTopology",
5
5
  "imports": [
6
- "__virtual_mf___mfe_internal__ConfigCustomTr064Set__mf_owner__259378411809170__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-DdhKfc_O.js",
7
- "__virtual_mf___mfe_internal__ConfigCustomTr064Set__mf_owner__259378411809170__loadShare__shared-C-z_ew1q.js"
6
+ "__virtual_mf___mfe_internal__ConfigCustomTr064Set__mf_owner__80542807241481__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-DwHxH2Tb.js",
7
+ "__virtual_mf___mfe_internal__ConfigCustomTr064Set__mf_owner__80542807241481__loadShare__shared-C3F6xhja.js"
8
8
  ]
9
9
  },
10
- "__virtual_mf___mfe_internal__ConfigCustomTr064Set__mf_owner__259378411809170__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-DdhKfc_O.js": {
11
- "file": "assets/_virtual_mf___mfe_internal__ConfigCustomTr064Set__mf_owner__259378411809170__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-DdhKfc_O.js",
12
- "name": "_virtual_mf___mfe_internal__ConfigCustomTr064Set__mf_owner__259378411809170__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js",
10
+ "__virtual_mf___mfe_internal__ConfigCustomTr064Set__mf_owner__80542807241481__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-DwHxH2Tb.js": {
11
+ "file": "assets/_virtual_mf___mfe_internal__ConfigCustomTr064Set__mf_owner__80542807241481__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-DwHxH2Tb.js",
12
+ "name": "_virtual_mf___mfe_internal__ConfigCustomTr064Set__mf_owner__80542807241481__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js",
13
13
  "imports": [
14
14
  "_rolldown-runtime-Dd_uD5pT.js",
15
- "_vite-preload-helper-DjNwdemH.js"
15
+ "_vite-preload-helper-BbbETgeG.js"
16
16
  ],
17
17
  "dynamicImports": [
18
- "virtual:mf:__mfe_internal__ConfigCustomTr064Set__mf_owner__259378411809170__prebuild__react_mf_1_jsx_mf_2_runtime__prebuild__.js",
18
+ "virtual:mf:__mfe_internal__ConfigCustomTr064Set__mf_owner__80542807241481__prebuild__react_mf_1_jsx_mf_2_runtime__prebuild__.js",
19
19
  "node_modules/@iobroker/gui-components/build/Components/IconLibrary/iconLibraryData.js"
20
20
  ]
21
21
  },
22
- "__virtual_mf___mfe_internal__ConfigCustomTr064Set__mf_owner__259378411809170__loadShare__shared-C-z_ew1q.js": {
23
- "file": "assets/_virtual_mf___mfe_internal__ConfigCustomTr064Set__mf_owner__259378411809170__loadShare__shared-C-z_ew1q.js",
24
- "name": "_virtual_mf___mfe_internal__ConfigCustomTr064Set__mf_owner__259378411809170__loadShare__shared",
22
+ "__virtual_mf___mfe_internal__ConfigCustomTr064Set__mf_owner__80542807241481__loadShare__shared-C3F6xhja.js": {
23
+ "file": "assets/_virtual_mf___mfe_internal__ConfigCustomTr064Set__mf_owner__80542807241481__loadShare__shared-C3F6xhja.js",
24
+ "name": "_virtual_mf___mfe_internal__ConfigCustomTr064Set__mf_owner__80542807241481__loadShare__shared",
25
25
  "imports": [
26
26
  "_rolldown-runtime-Dd_uD5pT.js",
27
- "__virtual_mf___mfe_internal__ConfigCustomTr064Set__mf_owner__259378411809170__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-DdhKfc_O.js",
28
- "_vite-preload-helper-DjNwdemH.js"
27
+ "__virtual_mf___mfe_internal__ConfigCustomTr064Set__mf_owner__80542807241481__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-DwHxH2Tb.js",
28
+ "_vite-preload-helper-BbbETgeG.js"
29
29
  ],
30
30
  "dynamicImports": [
31
- "virtual:mf:__mfe_internal__ConfigCustomTr064Set__mf_owner__259378411809170__prebuild__react_mf_2_dom_mf_1_client__prebuild__.js",
32
- "virtual:mf:__mfe_internal__ConfigCustomTr064Set__mf_owner__259378411809170__prebuild___mf_0_iobroker_mf_1_json_mf_2_config__prebuild__.js"
31
+ "virtual:mf:__mfe_internal__ConfigCustomTr064Set__mf_owner__80542807241481__prebuild__react_mf_2_dom_mf_1_client__prebuild__.js",
32
+ "virtual:mf:__mfe_internal__ConfigCustomTr064Set__mf_owner__80542807241481__prebuild___mf_0_iobroker_mf_1_json_mf_2_config__prebuild__.js"
33
33
  ]
34
34
  },
35
- "_dist-DaURp8MG.js": {
36
- "file": "assets/dist-DaURp8MG.js",
35
+ "_dist-DiU1y0R9.js": {
36
+ "file": "assets/dist-DiU1y0R9.js",
37
37
  "name": "dist",
38
38
  "imports": [
39
- "_utils-sDCNnUxL.js"
39
+ "_utils-towTPKqG.js"
40
40
  ]
41
41
  },
42
- "_helpers-B6m49UKI.js": {
43
- "file": "assets/helpers-B6m49UKI.js",
42
+ "_helpers-Dot7vgQQ.js": {
43
+ "file": "assets/helpers-Dot7vgQQ.js",
44
44
  "name": "helpers",
45
45
  "imports": [
46
- "_utils-sDCNnUxL.js"
46
+ "_utils-towTPKqG.js"
47
47
  ]
48
48
  },
49
49
  "_rolldown-runtime-Dd_uD5pT.js": {
50
50
  "file": "assets/rolldown-runtime-Dd_uD5pT.js",
51
51
  "name": "rolldown-runtime"
52
52
  },
53
- "_utils-sDCNnUxL.js": {
54
- "file": "assets/utils-sDCNnUxL.js",
53
+ "_utils-towTPKqG.js": {
54
+ "file": "assets/utils-towTPKqG.js",
55
55
  "name": "utils",
56
56
  "imports": [
57
- "_vite-preload-helper-DjNwdemH.js"
57
+ "_vite-preload-helper-BbbETgeG.js"
58
58
  ]
59
59
  },
60
- "_vite-preload-helper-DjNwdemH.js": {
61
- "file": "assets/vite-preload-helper-DjNwdemH.js",
60
+ "_vite-preload-helper-BbbETgeG.js": {
61
+ "file": "assets/vite-preload-helper-BbbETgeG.js",
62
62
  "name": "vite-preload-helper"
63
63
  },
64
64
  "index.html": {
65
- "file": "assets/index-CmL44Pzq.js",
65
+ "file": "assets/index-BCltTN89.js",
66
66
  "name": "index",
67
67
  "src": "index.html",
68
68
  "isEntry": true,
69
69
  "imports": [
70
- "__virtual_mf___mfe_internal__ConfigCustomTr064Set__mf_owner__259378411809170__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-DdhKfc_O.js",
71
- "__virtual_mf___mfe_internal__ConfigCustomTr064Set__mf_owner__259378411809170__loadShare__shared-C-z_ew1q.js",
72
- "_MeshTopology-mEnzehAC.js"
70
+ "__virtual_mf___mfe_internal__ConfigCustomTr064Set__mf_owner__80542807241481__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-DwHxH2Tb.js",
71
+ "__virtual_mf___mfe_internal__ConfigCustomTr064Set__mf_owner__80542807241481__loadShare__shared-C3F6xhja.js",
72
+ "_MeshTopology-DdxCvD6W.js"
73
73
  ]
74
74
  },
75
75
  "node_modules/@iobroker/gui-components/build/Components/IconLibrary/iconLibraryData.js": {
@@ -79,22 +79,22 @@
79
79
  "isDynamicEntry": true
80
80
  },
81
81
  "node_modules/react-qr-code/lib/index.mjs": {
82
- "file": "assets/lib-Bz6IScan.js",
82
+ "file": "assets/lib-C0xNRO2P.js",
83
83
  "name": "lib",
84
84
  "src": "node_modules/react-qr-code/lib/index.mjs",
85
85
  "isDynamicEntry": true,
86
86
  "imports": [
87
87
  "_rolldown-runtime-Dd_uD5pT.js",
88
- "__virtual_mf___mfe_internal__ConfigCustomTr064Set__mf_owner__259378411809170__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-DdhKfc_O.js"
88
+ "__virtual_mf___mfe_internal__ConfigCustomTr064Set__mf_owner__80542807241481__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-DwHxH2Tb.js"
89
89
  ]
90
90
  },
91
91
  "src/Components.tsx": {
92
- "file": "assets/Components-NzvMTX4W.js",
92
+ "file": "assets/Components-DnyXLngv.js",
93
93
  "name": "Components",
94
94
  "src": "src/Components.tsx",
95
95
  "isEntry": true,
96
96
  "imports": [
97
- "_MeshTopology-mEnzehAC.js"
97
+ "_MeshTopology-DdxCvD6W.js"
98
98
  ]
99
99
  },
100
100
  "virtual:mf-REMOTE_ENTRY_ID:__mfe_internal__ConfigCustomTr064Set__customComponents_js": {
@@ -102,9 +102,9 @@
102
102
  "name": "remoteEntry",
103
103
  "src": "virtual:mf-REMOTE_ENTRY_ID:__mfe_internal__ConfigCustomTr064Set__customComponents_js",
104
104
  "imports": [
105
- "_vite-preload-helper-DjNwdemH.js",
106
- "_dist-DaURp8MG.js",
107
- "_helpers-B6m49UKI.js"
105
+ "_vite-preload-helper-BbbETgeG.js",
106
+ "_dist-DiU1y0R9.js",
107
+ "_helpers-Dot7vgQQ.js"
108
108
  ],
109
109
  "dynamicImports": [
110
110
  "src/Components.tsx",
@@ -112,28 +112,28 @@
112
112
  ]
113
113
  },
114
114
  "virtual:mf-localSharedImportMap:__mfe_internal__ConfigCustomTr064Set__mf_owner__1": {
115
- "file": "assets/_virtual_mf-localSharedImportMap___mfe_internal__ConfigCustomTr064Set__mf_owner__1-Cenjta-f.js",
115
+ "file": "assets/_virtual_mf-localSharedImportMap___mfe_internal__ConfigCustomTr064Set__mf_owner__1-C-7VEH2M.js",
116
116
  "name": "_virtual_mf-localSharedImportMap___mfe_internal__ConfigCustomTr064Set__mf_owner__1",
117
117
  "src": "virtual:mf-localSharedImportMap:__mfe_internal__ConfigCustomTr064Set__mf_owner__1",
118
118
  "isDynamicEntry": true,
119
119
  "imports": [
120
- "_vite-preload-helper-DjNwdemH.js",
121
- "_dist-DaURp8MG.js"
120
+ "_vite-preload-helper-BbbETgeG.js",
121
+ "_dist-DiU1y0R9.js"
122
122
  ],
123
123
  "dynamicImports": [
124
- "__virtual_mf___mfe_internal__ConfigCustomTr064Set__mf_owner__259378411809170__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-DdhKfc_O.js",
125
- "virtual:mf:__mfe_internal__ConfigCustomTr064Set__mf_owner__259378411809170__prebuild__react_mf_1_jsx_mf_2_runtime__prebuild__.js",
126
- "virtual:mf:__mfe_internal__ConfigCustomTr064Set__mf_owner__259378411809170__prebuild__react_mf_2_dom_mf_1_client__prebuild__.js",
127
- "virtual:mf:__mfe_internal__ConfigCustomTr064Set__mf_owner__259378411809170__prebuild___mf_0_iobroker_mf_1_json_mf_2_config__prebuild__.js"
124
+ "__virtual_mf___mfe_internal__ConfigCustomTr064Set__mf_owner__80542807241481__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-DwHxH2Tb.js",
125
+ "virtual:mf:__mfe_internal__ConfigCustomTr064Set__mf_owner__80542807241481__prebuild__react_mf_1_jsx_mf_2_runtime__prebuild__.js",
126
+ "virtual:mf:__mfe_internal__ConfigCustomTr064Set__mf_owner__80542807241481__prebuild__react_mf_2_dom_mf_1_client__prebuild__.js",
127
+ "virtual:mf:__mfe_internal__ConfigCustomTr064Set__mf_owner__80542807241481__prebuild___mf_0_iobroker_mf_1_json_mf_2_config__prebuild__.js"
128
128
  ]
129
129
  },
130
130
  "virtual:mf:__mfe_internal__ConfigCustomTr064Set__mf_owner__1__H_A_I__hostAutoInit__H_A_I__.js": {
131
- "file": "assets/hostInit-C4-y6noJ.js",
131
+ "file": "assets/hostInit-C9ukT_fL.js",
132
132
  "name": "hostInit",
133
133
  "src": "virtual:mf:__mfe_internal__ConfigCustomTr064Set__mf_owner__1__H_A_I__hostAutoInit__H_A_I__.js",
134
134
  "imports": [
135
- "_vite-preload-helper-DjNwdemH.js",
136
- "_helpers-B6m49UKI.js"
135
+ "_vite-preload-helper-BbbETgeG.js",
136
+ "_helpers-Dot7vgQQ.js"
137
137
  ],
138
138
  "dynamicImports": [
139
139
  "virtual:mf-REMOTE_ENTRY_ID:__mfe_internal__ConfigCustomTr064Set__customComponents_js",
@@ -141,50 +141,50 @@
141
141
  ]
142
142
  },
143
143
  "virtual:mf:__mfe_internal__ConfigCustomTr064Set__mf_owner__1__P_S__pendingShares__P_S__.js": {
144
- "file": "assets/pendingShares-_Lyy3-xQ.js",
144
+ "file": "assets/pendingShares-CJcHAY7c.js",
145
145
  "name": "pendingShares",
146
146
  "src": "virtual:mf:__mfe_internal__ConfigCustomTr064Set__mf_owner__1__P_S__pendingShares__P_S__.js",
147
147
  "imports": [
148
- "_vite-preload-helper-DjNwdemH.js"
148
+ "_vite-preload-helper-BbbETgeG.js"
149
149
  ],
150
150
  "dynamicImports": [
151
- "__virtual_mf___mfe_internal__ConfigCustomTr064Set__mf_owner__259378411809170__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-DdhKfc_O.js",
152
- "__virtual_mf___mfe_internal__ConfigCustomTr064Set__mf_owner__259378411809170__loadShare__shared-C-z_ew1q.js",
151
+ "__virtual_mf___mfe_internal__ConfigCustomTr064Set__mf_owner__80542807241481__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-DwHxH2Tb.js",
152
+ "__virtual_mf___mfe_internal__ConfigCustomTr064Set__mf_owner__80542807241481__loadShare__shared-C3F6xhja.js",
153
153
  "virtual:mf-localSharedImportMap:__mfe_internal__ConfigCustomTr064Set__mf_owner__1"
154
154
  ]
155
155
  },
156
- "virtual:mf:__mfe_internal__ConfigCustomTr064Set__mf_owner__259378411809170__prebuild___mf_0_iobroker_mf_1_json_mf_2_config__prebuild__.js": {
157
- "file": "assets/_virtual_mf___mfe_internal__ConfigCustomTr064Set__mf_owner__259378411809170__prebuild___mf_0_iobroker_mf_1_json_mf_2_config__prebuild__-DEVnYCRU.js",
158
- "name": "_virtual_mf___mfe_internal__ConfigCustomTr064Set__mf_owner__259378411809170__prebuild___mf_0_iobroker_mf_1_json_mf_2_config__prebuild__",
159
- "src": "virtual:mf:__mfe_internal__ConfigCustomTr064Set__mf_owner__259378411809170__prebuild___mf_0_iobroker_mf_1_json_mf_2_config__prebuild__.js",
156
+ "virtual:mf:__mfe_internal__ConfigCustomTr064Set__mf_owner__80542807241481__prebuild___mf_0_iobroker_mf_1_json_mf_2_config__prebuild__.js": {
157
+ "file": "assets/_virtual_mf___mfe_internal__ConfigCustomTr064Set__mf_owner__80542807241481__prebuild___mf_0_iobroker_mf_1_json_mf_2_config__prebuild__-B5JQBr75.js",
158
+ "name": "_virtual_mf___mfe_internal__ConfigCustomTr064Set__mf_owner__80542807241481__prebuild___mf_0_iobroker_mf_1_json_mf_2_config__prebuild__",
159
+ "src": "virtual:mf:__mfe_internal__ConfigCustomTr064Set__mf_owner__80542807241481__prebuild___mf_0_iobroker_mf_1_json_mf_2_config__prebuild__.js",
160
160
  "isDynamicEntry": true,
161
161
  "imports": [
162
162
  "_rolldown-runtime-Dd_uD5pT.js",
163
- "__virtual_mf___mfe_internal__ConfigCustomTr064Set__mf_owner__259378411809170__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-DdhKfc_O.js",
164
- "_vite-preload-helper-DjNwdemH.js",
165
- "_dist-DaURp8MG.js"
163
+ "__virtual_mf___mfe_internal__ConfigCustomTr064Set__mf_owner__80542807241481__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-DwHxH2Tb.js",
164
+ "_vite-preload-helper-BbbETgeG.js",
165
+ "_dist-DiU1y0R9.js"
166
166
  ],
167
167
  "dynamicImports": [
168
168
  "node_modules/react-qr-code/lib/index.mjs"
169
169
  ]
170
170
  },
171
- "virtual:mf:__mfe_internal__ConfigCustomTr064Set__mf_owner__259378411809170__prebuild__react_mf_1_jsx_mf_2_runtime__prebuild__.js": {
172
- "file": "assets/_virtual_mf___mfe_internal__ConfigCustomTr064Set__mf_owner__259378411809170__prebuild__react_mf_1_jsx_mf_2_runtime__prebuild__-B_v57Qfr.js",
173
- "name": "_virtual_mf___mfe_internal__ConfigCustomTr064Set__mf_owner__259378411809170__prebuild__react_mf_1_jsx_mf_2_runtime__prebuild__",
174
- "src": "virtual:mf:__mfe_internal__ConfigCustomTr064Set__mf_owner__259378411809170__prebuild__react_mf_1_jsx_mf_2_runtime__prebuild__.js",
171
+ "virtual:mf:__mfe_internal__ConfigCustomTr064Set__mf_owner__80542807241481__prebuild__react_mf_1_jsx_mf_2_runtime__prebuild__.js": {
172
+ "file": "assets/_virtual_mf___mfe_internal__ConfigCustomTr064Set__mf_owner__80542807241481__prebuild__react_mf_1_jsx_mf_2_runtime__prebuild__-B_v57Qfr.js",
173
+ "name": "_virtual_mf___mfe_internal__ConfigCustomTr064Set__mf_owner__80542807241481__prebuild__react_mf_1_jsx_mf_2_runtime__prebuild__",
174
+ "src": "virtual:mf:__mfe_internal__ConfigCustomTr064Set__mf_owner__80542807241481__prebuild__react_mf_1_jsx_mf_2_runtime__prebuild__.js",
175
175
  "isDynamicEntry": true,
176
176
  "imports": [
177
177
  "_rolldown-runtime-Dd_uD5pT.js"
178
178
  ]
179
179
  },
180
- "virtual:mf:__mfe_internal__ConfigCustomTr064Set__mf_owner__259378411809170__prebuild__react_mf_2_dom_mf_1_client__prebuild__.js": {
181
- "file": "assets/_virtual_mf___mfe_internal__ConfigCustomTr064Set__mf_owner__259378411809170__prebuild__react_mf_2_dom_mf_1_client__prebuild__-BInMjdwk.js",
182
- "name": "_virtual_mf___mfe_internal__ConfigCustomTr064Set__mf_owner__259378411809170__prebuild__react_mf_2_dom_mf_1_client__prebuild__",
183
- "src": "virtual:mf:__mfe_internal__ConfigCustomTr064Set__mf_owner__259378411809170__prebuild__react_mf_2_dom_mf_1_client__prebuild__.js",
180
+ "virtual:mf:__mfe_internal__ConfigCustomTr064Set__mf_owner__80542807241481__prebuild__react_mf_2_dom_mf_1_client__prebuild__.js": {
181
+ "file": "assets/_virtual_mf___mfe_internal__ConfigCustomTr064Set__mf_owner__80542807241481__prebuild__react_mf_2_dom_mf_1_client__prebuild__-D8dfJFpB.js",
182
+ "name": "_virtual_mf___mfe_internal__ConfigCustomTr064Set__mf_owner__80542807241481__prebuild__react_mf_2_dom_mf_1_client__prebuild__",
183
+ "src": "virtual:mf:__mfe_internal__ConfigCustomTr064Set__mf_owner__80542807241481__prebuild__react_mf_2_dom_mf_1_client__prebuild__.js",
184
184
  "isDynamicEntry": true,
185
185
  "imports": [
186
186
  "_rolldown-runtime-Dd_uD5pT.js",
187
- "__virtual_mf___mfe_internal__ConfigCustomTr064Set__mf_owner__259378411809170__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-DdhKfc_O.js"
187
+ "__virtual_mf___mfe_internal__ConfigCustomTr064Set__mf_owner__80542807241481__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-DwHxH2Tb.js"
188
188
  ]
189
189
  }
190
190
  }
@@ -0,0 +1 @@
1
+ import{t as e}from"./MeshTopology-DdxCvD6W.js";var t={MeshTopology:e};export{t as default};
@@ -0,0 +1,4 @@
1
+ import{$t as e,An as t,Bi as n,Bn as r,C as i,Cn as a,Dn as o,Dt as s,E as c,En as l,F as u,G as d,H as f,Hi as p,Hn as m,Ht as h,It as g,Jt as _,Mn as ee,Mt as v,O as y,On as b,Ot as x,Pn as S,Qn as C,Qt as w,R as te,Ri as ne,Rn as T,Rt as E,Tn as D,U as O,Ui as k,V as re,Xt as A,Yt as ie,Zn as j,_n as M,bi as N,bn as ae,bt as P,ct as F,d as I,dn as L,dt as oe,en as se,fn as ce,gt as R,jt as le,kn as ue,kt as de,ln as fe,lt as pe,mn as me,nn as he,pn as ge,qn as _e,qr as z,qt as ve,rn as ye,tn as be,un as xe,vi as Se,yi as B,yn as Ce,zn as we}from"./_virtual_mf___mfe_internal__ConfigCustomTr064Set__mf_owner__80542807241481__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-DwHxH2Tb.js";import{t as Te}from"./_virtual_mf___mfe_internal__ConfigCustomTr064Set__mf_owner__80542807241481__loadShare__shared-C3F6xhja.js";function V(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 H(e){return!!e&&(e.state||``).toUpperCase()===`CONNECTED`}function U(e,t){return e?!H(e)&&H(t)?t:e:t}function W(e){return e.configured||e.name||e.mac||e.uid}function Ee(e,t){return!!e.node.configured==!!t.node.configured?e.connected===t.connected?W(e.node).localeCompare(W(t.node)):e.connected?-1:1:e.node.configured?-1:1}function De(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 G(e){return(e==null?void 0:e.rcpiTo)??(e==null?void 0:e.rcpiFrom)}function Oe(e){return e>=-60?4:e>=-70?3:e>=-80?2:1}function ke(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,U(o.get(e.to),e)):a(e.from)?s.set(e.to,U(s.get(e.to),e)):a(e.to)&&s.set(e.from,U(s.get(e.from),De(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=H(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?V(n):``;f.push({uid:e.uid,name:W(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:G(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(Ee)),d.sort(Ee),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 K(e,t){return t&&Ae(e)?56:40}function Ae(e){return e.clients.some(e=>e.connected&&G(e.link)!==void 0)}function je(e){return e<=8?1:e<=20?2:e<=48?3:4}function Me(e,t,n){let r=Math.ceil(e/t);return 60+(e?r*(n+6)-6+10:0)}function Ne(e,t=!1){let n=[],r=[],i=new Map,a=e=>{let n=e.clients.length,r=je(n);return{w:Math.max(240,r*340+(r-1)*6+20),h:Me(n,r,K(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:K(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 Pe(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=K(e,n),h={view:e,x:c,y:a,w:l,h:Me(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 Fe(e,t,n=!1){let r=Ne(e,n);return r.width<=t?r:Pe(e,t,n)}function q(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 Y(e){if(!e)return`–`;let t=e/1e3;return t>=10?Math.round(t).toString():t.toFixed(1)}var Ie={COMPUTER:te,STORAGE:w,SMARTPHONE:_,TABLET:se,GAMING_DEVICE:A,SET_TOP_BOX:ye,PRINTER:v,NETWORK_SWITCH:pe,SPEAKER:ie,ROBOT:ve,PHONE:s,IP_PHONE:x,CIRCUIT_BOARD:re,CAMERA:i,DOOR_LOCK:R,DOOR_BELL:O,SHUTTER:c,AIR_CONDITIONER:F,LAMP:oe,THERMOSTAT:be,BUTTON:he,SOCKET:le,SENSOR:h,MONITOR:P,SMART_WATCH:y,ROUTER:E};function Le(e){return e&&Ie[e]||f}function Re(e){let t=Le(e.deviceClass);return B(t,{x:e.x,y:e.y,width:e.size,height:e.size,sx:{width:e.size,height:e.size,color:e.color}})}var ze=`not alive`,Be=`not connected`,Ve=`not supported`,X=`timeout`;async function He(e,t,n=2e4){try{let r=await e.getState(`system.adapter.${t}.alive`);if(!(r!=null&&r.val))return{error:ze,nodes:[],links:[]};let i,a=new Promise(e=>{i=setTimeout(()=>e(X),n)}),o=e.sendTo(t,`mesh`,{}),s=await Promise.race([o,a]);return clearTimeout(i),s===`timeout`||!s||typeof s!=`object`?{error:X,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 Ue(e,t,n,r,i=2e4){try{let a=await e.getState(`system.adapter.${t}.alive`);if(!(a!=null&&a.val))return ze;let o,s=new Promise(e=>{o=setTimeout(()=>e(X),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`?X:l.error||void 0}catch(e){return(e==null?void 0:e.message)||String(e)}}var We=class{constructor(e){z(this,`options`,void 0),z(this,`timer`,null),z(this,`running`,!1),z(this,`stopped`,!0),z(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 He(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 Ue(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)}},Z={2.4:`#f59e0b`,5:`#3b82f6`,6:`#8b5cf6`,LAN:`#10b981`,other:`#9ca3af`},Ge=13,Ke=26,qe=16,Je=63,Ye=600,Xe=63,Ze=760,Qe=480;function $e(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 et(e,t){try{window.localStorage.setItem(e,JSON.stringify(t))}catch{}}function Q(e,t){return e.vendor||(e.randomMac?t(`tr064_randomMac`):``)}function $(e){switch(e){case`2.4`:case`5`:case`6`:return`${e} GHz`;case`LAN`:return`LAN`;default:return``}}function tt(e,t){switch(e){case ze:return{severity:`info`,text:t(`tr064_startInstance`)};case Be:return{severity:`warning`,text:t(`tr064_notConnected`)};case Ve:return{severity:`warning`,text:t(`tr064_notSupported`)};case X:return{severity:`warning`,text:t(`tr064_timeout`)};default:return{severity:`warning`,text:t(`tr064_error`,e)}}}function nt(e){return e.connected&&(e.curDown||e.curUp)?`↓ ${Y(e.curDown)} / ↑ ${Y(e.curUp)}`:``}var rt=`#ef4444`;function it(e,t,n){return Oe(t)===1||n===`too_far`?rt:Z[e||`other`]}function at(e){let t=Oe(e.rcpi);return B(`g`,{transform:`translate(${e.x}, ${e.y})`,children:[0,1,2,3].map(n=>{let r=3+n*2.5;return B(`rect`,{x:n*3.3,y:-r,width:2.4,height:r,rx:.8,fill:e.color,opacity:n<t?1:.22},n)})})}function ot(e){return e===void 0?``:`${e} dBm`}function st(e,t){return e?t(`tr064_lastSeen`,new Date(e).toLocaleString()):``}function ct(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 lt(e){return B(D,{component:`span`,sx:{display:`inline-block`,flexShrink:0,width:10,height:10,borderRadius:`2px`,backgroundColor:Z[e.kind]}})}function ut(){return B(D,{sx:{display:`flex`,gap:1.5,alignItems:`center`,flexWrap:`wrap`},children:[`2.4`,`5`,`6`,`LAN`].map(e=>N(D,{sx:{display:`flex`,alignItems:`center`,gap:.5},children:[B(lt,{kind:e}),B(a,{variant:`caption`,children:$(e)})]},e))})}function dt(e,t,n,r){var i;let a=V(e.link),o=((i=e.link.state)==null?void 0:i.toUpperCase())===`CONNECTED`,s=[$(a)||e.link.type,o&&e.link.curDown?`${Y(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`,Y(e.link.curDown),Y(e.link.curUp)):``,...ct(e.link,void 0,r),o?``:st(e.link.lastConnected,r)].filter(Boolean);return N(`g`,{children:[B(`title`,{children:c.join(`
2
+ `)}),B(`path`,{d:e.d,fill:`none`,stroke:Z[a],strokeWidth:2.5,strokeDasharray:o?void 0:`6 4`}),B(`text`,{x:e.labelX,y:e.labelY,fontSize:11,fill:n.palette.text.secondary,children:s})]},`edge-${t}`)}function ft(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:``,u=a&&r.showVendor?Q(a,n):``,d=[c||u,(a==null?void 0:a.ip)||``,s].filter(Boolean).join(` · `),f=a&&a.role!==`master`&&a.mac&&r.onRename?a.uid:``,p=e.view.clients.length,m=p===1?n(`tr064_oneDevice`):p?n(`tr064_devices`,p):``,h=q(e.w-20-(m?m.length*6.2+8:0),14,!0),g=q(e.w-20,11);return N(`g`,{transform:`translate(${e.x}, ${e.y})`,children:[B(`title`,{children:[o,a==null?void 0:a.model,a?Q(a,n):``,a==null?void 0:a.mac,a==null?void 0:a.ip,f?n(`tr064_clickToRename`):``].filter(Boolean).join(`
3
+ `)}),B(`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`}),B(`text`,{x:10,y:24,fontSize:14,fontWeight:600,fill:i.text.primary,style:f?{cursor:`pointer`}:void 0,onClick:f?()=>r.onRename(f):void 0,children:J(o,h)}),B(`text`,{x:10,y:42,fontSize:11,fill:i.text.secondary,children:J(d,g)}),B(`text`,{x:e.w-10,y:24,fontSize:11,textAnchor:`end`,fill:i.text.secondary,children:m}),e.view.clients.map((t,a)=>{var o;let s=a%e.columns,c=Math.floor(a/e.columns),u=10+s*(e.chipW+6),d=60+c*(e.chipH+6),f=V(t.link),p=!!t.node.configured,m=t.node.configured||t.node.name||t.node.mac,h=r.showVendor?Q(t.node,n):``,g=e.chipH>=56&&!!h,_=t.connected?G(t.link):void 0,ee=Math.max($(f)?34:0,_===void 0?0:Je),v=e.chipW-47-ee-6,y=_===void 0?e.chipW-47-8:v,b=t.node.ip?`IP: ${t.node.ip}`:``,x=!g&&b&&h?b.length*5.7+10:0,S=_===void 0?``:it(f,_,t.node.position),C=[p?n(`tr064_configuredAs`,t.node.configured):``,t.node.name,Q(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`,Y(t.link.curDown),Y(t.link.curUp)):``,...t.connected?ct(t.link,t.node.position,n):[],t.connected?``:st((o=t.link)==null?void 0:o.lastConnected,n),r.onRename?n(`tr064_clickToRename`):``].filter(Boolean);return N(`g`,{transform:`translate(${u}, ${d})`,opacity:t.connected?1:p?.85:.6,style:r.onRename?{cursor:`pointer`}:void 0,onClick:r.onRename?()=>r.onRename(t.node.uid):void 0,children:[B(`title`,{children:C.join(`
4
+ `)}),B(`rect`,{width:e.chipW,height:e.chipH,rx:7,fill:i.action.hover,stroke:p?i.primary.main:i.divider,strokeWidth:p?2:1,strokeDasharray:t.connected?void 0:`4 3`}),B(`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:Z[f]}),B(`rect`,{x:Ge,y:(e.chipH-Ke)/2,width:Ke,height:Ke,rx:6,fill:l(Z[f],.14)}),B(Re,{deviceClass:t.node.deviceClass,x:18,y:(e.chipH-qe)/2,size:qe,color:Z[f]}),B(`text`,{x:47,y:g?19:17,fontSize:12.5,fontWeight:p?700:600,fill:p?i.primary.main:i.text.primary,children:J(m,q(v,12.5,!0))}),h?B(`text`,{x:47,y:g?34:31,fontSize:10,fontStyle:`italic`,opacity:.75,fill:i.text.secondary,children:J(h,q(y-x,10))}):null,b?B(`text`,{x:x?47+y:47,y:g?48:31,fontSize:10,textAnchor:x?`end`:`start`,fill:i.text.secondary,children:J(b,q(y,10))}):null,B(`text`,{x:e.chipW-8,y:g?19:16,fontSize:10,textAnchor:`end`,fill:i.text.secondary,children:$(f)}),_===void 0?null:N(Se,{children:[B(at,{rcpi:_,x:e.chipW-8-Je,y:g?41:34,color:S}),B(`text`,{x:e.chipW-8,y:g?41:34,fontSize:10.5,textAnchor:`end`,fill:S,children:ot(_)})]})]},t.node.uid)})]},`card-${(a==null?void 0:a.uid)||`unassigned`}`)}function pt(e){let{tree:t,width:n,t:r,theme:i,showVendor:o,onRename:s}=e,c=n>=Ze,l=n>=Qe,u=l?void 0:{px:1};return N(fe,{size:`small`,stickyHeader:!0,children:[B(ge,{children:N(me,{children:[B(L,{sx:u,children:r(`tr064_device`)}),l?B(L,{children:r(`tr064_accessPoint`)}):null,B(L,{sx:u,children:r(`tr064_connection`)}),l?B(L,{children:r(`tr064_state`)}):null,l?B(L,{children:r(`tr064_signal`)}):null,l?B(L,{children:r(`tr064_rate`)}):null,c?B(L,{children:r(`tr064_mac`)}):null,c?B(L,{children:r(`tr064_ip`)}):null,s?B(L,{sx:{width:40}}):null]})}),B(xe,{children:t.rows.map(e=>N(me,{sx:{opacity:e.connected?1:.6},children:[N(L,{sx:{...u,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:[N(D,{sx:{display:`flex`,alignItems:`center`,gap:.75},children:[B(D,{component:Le(e.deviceClass),sx:{fontSize:17,flex:`0 0 auto`,color:e.kind?Z[e.kind]:`text.secondary`}}),B(`span`,{children:e.name})]}),o&&Q(e,r)?B(a,{variant:`caption`,component:`div`,color:`text.secondary`,sx:{fontStyle:`italic`,opacity:.7,fontWeight:400},children:Q(e,r)}):null,l?null:B(a,{variant:`caption`,component:`div`,color:`text.secondary`,sx:{fontWeight:400},children:[e.accessPoint||r(`tr064_notAssigned`),e.connected?``:r(`tr064_disconnected`)].filter(Boolean).join(` · `)})]}),l?B(L,{children:e.accessPoint||r(`tr064_notAssigned`)}):null,B(L,{sx:{...u,whiteSpace:`nowrap`},children:e.kind?N(D,{sx:{display:`flex`,alignItems:`center`,gap:.75},children:[B(lt,{kind:e.kind}),$(e.kind)||e.type]}):null}),l?N(L,{children:[e.connected?r(`tr064_connected`):r(`tr064_disconnected`),!e.connected&&e.lastConnected?B(a,{variant:`caption`,component:`div`,color:`text.secondary`,children:st(e.lastConnected,r)}):null]}):null,l?N(L,{sx:{whiteSpace:`nowrap`},children:[e.connected&&e.rcpi!==void 0?N(D,{sx:{display:`flex`,alignItems:`center`,gap:.75},children:[B(D,{component:`svg`,viewBox:`0 0 13 11`,sx:{width:13,height:11,flex:`0 0 auto`},children:B(at,{rcpi:e.rcpi,x:0,y:11,color:it(e.kind,e.rcpi,e.position)})}),ot(e.rcpi)]}):null,e.connected&&(e.position===`too_far`||e.position===`too_close`)?B(a,{variant:`caption`,component:`div`,color:e.position===`too_far`?`warning.main`:`text.secondary`,children:r(`tr064_position_${e.position}`)}):null]}):null,l?B(L,{sx:{whiteSpace:`nowrap`},children:nt(e)}):null,c?B(L,{sx:{fontFamily:`monospace`},children:e.mac}):null,c?B(L,{children:e.ip||``}):null,s?B(L,{sx:{...u,width:40},children:B(C,{size:`small`,title:r(`tr064_rename`),onClick:()=>s(e.uid),children:B(d,{fontSize:`small`})})}):null]},e.uid))})]})}function mt(e){let{node:t,t:n,onClose:i,onRename:o}=e,[s,c]=k(t.name||``),[l,f]=k(!1),[p,h]=k(null),g=s.trim()&&s.trim()!==t.name,_=()=>{g&&!l&&(f(!0),h(null),o(t.mac,s.trim()).then(e=>{f(!1),e?h(e):i()}))};return N(T,{open:!0,fullWidth:!0,maxWidth:`sm`,onClose:l?void 0:i,children:[B(m,{children:n(`tr064_renameTitle`)}),N(r,{children:[B(a,{variant:`body2`,color:`text.secondary`,sx:{mb:2},children:[t.mac,Q(t,n),t.ip].filter(Boolean).join(` · `)}),B(M,{fullWidth:!0,autoFocus:!0,variant:`standard`,label:n(`tr064_newName`),value:s,disabled:l,error:!!p,slotProps:{htmlInput:{maxLength:Xe}},onChange:e=>c(e.target.value),onKeyUp:e=>{e.key===`Enter`&&_()}}),B(j,{severity:`info`,sx:{mt:2},children:n(`tr064_renameHint`)}),p?B(j,{severity:`error`,sx:{mt:1},children:n(`tr064_renameFailed`,p)}):null]}),N(we,{children:[B(ue,{variant:`contained`,disabled:l||!g,startIcon:l?B(S,{size:16}):B(d,{}),onClick:_,children:n(`tr064_rename`)}),B(ue,{variant:`contained`,color:`inherit`,disabled:l,startIcon:B(u,{}),onClick:i,children:n(`tr064_cancel`)})]})]})}function ht(r){let{data:i,loading:s,error:c,onRefresh:l,onRename:u,t:d,compact:f,height:m}=r,h=r.storageKey||`tr064.meshTopology`,_=b(),v=n(()=>r.themeType&&r.themeType!==_.palette.mode?o({palette:{mode:r.themeType}}):_,[_,r.themeType]),[y,x]=k(()=>$e(h)),w=e=>{let t={...y,...e};x(t),et(h,t)},[te,T]=k(null),E=te?((i==null?void 0:i.nodes)||[]).find(e=>e.uid===te):void 0,O=u&&i!=null&&i.canRename?e=>T(e):void 0,re=p(null),[A,ie]=k(0);ne(()=>{let e=re.current;if(!e||(ie(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);ie(e=>e===n?e:n)});return t.observe(e),()=>t.disconnect()},[]);let M=n(()=>i?ke(i,{onlyConfigured:y.onlyConfigured,showDisconnected:y.showDisconnected}):null,[i,y.onlyConfigured,y.showDisconnected]),P=Math.max(0,A-2),F=n(()=>{if(!M||!P)return null;let e=[...M.roots];return M.unassigned.length&&e.push({clients:M.unassigned,children:[]}),Fe(e,P,y.showVendor)},[M,P,y.showVendor]),I=!!f||A>0&&A<Ye,L=m!=null&&m!==``,oe={overflow:`auto`,minHeight:0,border:`1px solid ${v.palette.divider}`,borderRadius:1,...L?{flex:`1 1 auto`}:{maxHeight:`75vh`}},se=N(D,{sx:{display:`flex`,alignItems:`center`,flexWrap:`wrap`,columnGap:I?.5:1,rowGap:.5,mb:1,flex:`0 0 auto`},children:[I?B(C,{size:`small`,title:d(`tr064_refresh`),disabled:s,onClick:()=>l(),children:s?B(S,{size:18}):B(g,{fontSize:`small`})}):B(ue,{variant:`outlined`,size:`small`,startIcon:s?B(S,{size:16}):B(g,{}),disabled:s,onClick:()=>l(),children:d(`tr064_refresh`)}),[{key:`onlyConfigured`,label:d(`tr064_onlyConfigured`)},{key:`showDisconnected`,label:d(`tr064_showDisconnected`)},{key:`showVendor`,label:d(`tr064_showVendor`)}].map(e=>B(_e,{sx:I?{mr:.5,ml:0}:void 0,control:B(ee,{size:`small`,sx:I?{p:.5}:void 0,checked:y[e.key],onChange:t=>w({[e.key]:t.target.checked})}),label:B(a,{variant:I?`body2`:`body1`,children:e.label})},e.key)),N(ae,{size:`small`,exclusive:!0,value:y.viewMode,onChange:(e,t)=>t&&w({viewMode:t}),children:[B(Ce,{value:`graph`,title:d(`tr064_graph`),sx:I?{p:.5}:void 0,children:B(de,{fontSize:`small`})}),B(Ce,{value:`table`,title:d(`tr064_table`),sx:I?{p:.5}:void 0,children:B(e,{fontSize:`small`})})]}),B(D,{sx:{flexGrow:1}}),N(D,{sx:{display:`flex`,alignItems:`center`,flexWrap:`wrap`,columnGap:1.5,rowGap:.5},children:[B(ut,{}),i!=null&&i.ts?B(a,{variant:`caption`,color:`text.secondary`,children:d(`tr064_updated`,new Date(i.ts).toLocaleTimeString())}):null]})]}),R;if(c&&(c===`not alive`||!i)){let e=tt(c,d);R=B(j,{severity:e.severity,children:e.text})}else if(!i||!M)R=N(D,{sx:{display:`flex`,alignItems:`center`,gap:1,p:2},children:[B(S,{size:20}),B(a,{children:d(`tr064_loading`)})]});else{let e=c?tt(c,d):null;R=N(Se,{children:[e?B(j,{severity:e.severity,sx:{mb:1,flex:`0 0 auto`},children:e.text}):null,!M.roots.length&&!M.unassigned.length?B(j,{severity:`info`,children:d(`tr064_noData`)}):y.viewMode===`table`?B(ce,{sx:oe,children:B(pt,{tree:M,width:P,t:d,theme:v,showVendor:y.showVendor,onRename:O})}):B(D,{sx:{...oe,backgroundColor:v.palette.background.default},children:F?N(`svg`,{width:F.width,height:F.height,style:{display:`block`,fontFamily:v.typography.fontFamily},children:[F.edges.map((e,t)=>dt(e,t,v,d)),F.cards.map(e=>ft(e,v,d,{showVendor:y.showVendor,onRename:O}))]}):null})]})}let le=N(D,{ref:re,sx:{width:`100%`,minWidth:0,display:`flex`,flexDirection:`column`,...L?{height:m}:{}},children:[se,R,E&&u?B(mt,{node:E,t:d,onClose:()=>T(null),onRename:u}):null]});return v===_?le:B(t,{theme:v,children:le})}var gt=class e extends Te{constructor(e){super(e),z(this,`loader`,null),this.state={...this.state,data:null,loading:!1,error:null}}async componentDidMount(){await super.componentDidMount(),this.loader=new We({socket:this.props.oContext.socket,instanceId:`${this.props.oContext.adapterName}.${this.props.oContext.instance}`,onChange:e=>this.setState(e)}),this.loader.start()}componentWillUnmount(){var e;(e=this.loader)==null||e.stop(),this.loader=null,super.componentWillUnmount()}renderItem(t,n,r){return B(ht,{data:this.state.data,loading:this.state.loading,error:this.state.error,onRefresh:()=>{var e;(e=this.loader)==null||e.refresh()},onRename:async(e,t)=>this.loader?this.loader.rename(e,t):`not alive`,t:e.t,themeType:this.props.oContext.themeType===`dark`?`dark`:`light`,storageKey:`tr064.meshTopology`})}};z(gt,`t`,(e,...t)=>I.t(e,...t));export{gt as t};
@@ -0,0 +1 @@
1
+ import{t as e}from"./vite-preload-helper-BbbETgeG.js";import"./dist-DiU1y0R9.js";var t=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=(e,t,n,r)=>{var i,a;let o=(i=globalThis.__mf_module_cache__)==null?void 0:i.share,s=t.map(e=>o==null?void 0:o[e]).find(e=>e!==void 0),c=e=>{let t=String(e||``).split(/[^0-9]+/).map(Number),r=String(n||``).split(/[^0-9]+/).map(Number);for(let e=0;e<Math.max(t.length,r.length);e++){if((t[e]||0)<(r[e]||0))return!0;if((t[e]||0)>(r[e]||0))return!1}return!1};if(!c((s==null?void 0:s.version)??(s==null||(a=s.default)==null?void 0:a.version)))for(let t of e){var l,u;let e=o==null?void 0:o[t];if(e===void 0)continue;let n=(e==null?void 0:e.version)??(e==null||(l=e.default)==null?void 0:l.version);if(!(n!==void 0&&c(n))&&(!r||typeof(e==null?void 0:e[r])==`function`||typeof(e==null||(u=e.default)==null?void 0:u[r])==`function`))return e}},r={react:async()=>await e(()=>import(`./_virtual_mf___mfe_internal__ConfigCustomTr064Set__mf_owner__80542807241481__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-DwHxH2Tb.js`).then(e=>e.Gi),[],import.meta.url),"react/jsx-runtime":async()=>await e(()=>import(`./_virtual_mf___mfe_internal__ConfigCustomTr064Set__mf_owner__80542807241481__prebuild__react_mf_1_jsx_mf_2_runtime__prebuild__-B_v57Qfr.js`),[],import.meta.url),"react-dom":async()=>await e(()=>import(`./_virtual_mf___mfe_internal__ConfigCustomTr064Set__mf_owner__80542807241481__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-DwHxH2Tb.js`).then(e=>e.Br),[],import.meta.url),"react-dom/client":async()=>await e(()=>import(`./_virtual_mf___mfe_internal__ConfigCustomTr064Set__mf_owner__80542807241481__prebuild__react_mf_2_dom_mf_1_client__prebuild__-D8dfJFpB.js`),[],import.meta.url),"@mui/material":async()=>await e(()=>import(`./_virtual_mf___mfe_internal__ConfigCustomTr064Set__mf_owner__80542807241481__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-DwHxH2Tb.js`).then(e=>e.gr),[],import.meta.url),"@mui/icons-material":async()=>await e(()=>import(`./_virtual_mf___mfe_internal__ConfigCustomTr064Set__mf_owner__80542807241481__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-DwHxH2Tb.js`).then(e=>e.an),[],import.meta.url),"@iobroker/gui-components":async()=>await e(()=>import(`./_virtual_mf___mfe_internal__ConfigCustomTr064Set__mf_owner__80542807241481__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-DwHxH2Tb.js`).then(e=>e.b),[],import.meta.url),"@iobroker/json-config":async()=>await e(()=>import(`./_virtual_mf___mfe_internal__ConfigCustomTr064Set__mf_owner__80542807241481__prebuild___mf_0_iobroker_mf_1_json_mf_2_config__prebuild__-B5JQBr75.js`),[],import.meta.url)},i={react:{name:`react`,version:`19.3.0`,scope:[`default`],loaded:!1,materialize:!0,eager:!1,from:`ConfigCustomTr064Set`,canLiveRebind:!0,get(){let e=i.react;return e.lib?e.lib:(e.loading||=(async()=>{try{let{react:n}=r,i=t({...await n()});return i.__esModule!==!0&&Object.defineProperty(i,"__esModule",{value:!0,enumerable:!1}),e.lib=function(){return i},e.loaded=!0,e.lib}finally{e.loading=void 0}})(),e.loading)},shareConfig:{singleton:!0,requiredVersion:`*`,strictVersion:!1,eager:!1}},"react/jsx-runtime":{name:`react/jsx-runtime`,version:`19.3.0`,scope:[`default`],loaded:!1,materialize:!0,eager:!1,from:`ConfigCustomTr064Set`,canLiveRebind:!0,get(){let e=i[`react/jsx-runtime`];if(e.lib)return e.lib;if(e.loading)return e.loading;let a=n([`default:react/jsx-runtime`,`react/jsx-runtime`],[`default:react`,`react`],`19.3.0`,void 0);return a===void 0?(e.loading=(async()=>{try{let{"react/jsx-runtime":n}=r,i=t({...await n()});return i.__esModule!==!0&&Object.defineProperty(i,"__esModule",{value:!0,enumerable:!1}),e.lib=function(){return i},e.loaded=!0,e.lib}finally{e.loading=void 0}})(),e.loading):(e.lib=function(){return a},e.loaded=!0,e.lib)},shareConfig:{singleton:!0,requiredVersion:`*`,strictVersion:!1,eager:!1}},"react-dom":{name:`react-dom`,version:`19.3.0`,scope:[`default`],loaded:!1,materialize:!0,eager:!1,from:`ConfigCustomTr064Set`,canLiveRebind:!0,get(){let e=i[`react-dom`];return e.lib?e.lib:(e.loading||=(async()=>{try{let{"react-dom":n}=r,i=t({...await n()});return i.__esModule!==!0&&Object.defineProperty(i,"__esModule",{value:!0,enumerable:!1}),e.lib=function(){return i},e.loaded=!0,e.lib}finally{e.loading=void 0}})(),e.loading)},shareConfig:{singleton:!0,requiredVersion:`*`,strictVersion:!1,eager:!1}},"react-dom/client":{name:`react-dom/client`,version:`19.3.0`,scope:[`default`],loaded:!1,materialize:!0,eager:!1,from:`ConfigCustomTr064Set`,canLiveRebind:!0,get(){let e=i[`react-dom/client`];if(e.lib)return e.lib;if(e.loading)return e.loading;let a=n([`default:react-dom/client`,`react-dom/client`,`default:react-dom`,`react-dom`],[`default:react`,`react`],`19.3.0`,`createRoot`);return a===void 0?(e.loading=(async()=>{try{let{"react-dom/client":n}=r,i=t({...await n()});return i.__esModule!==!0&&Object.defineProperty(i,"__esModule",{value:!0,enumerable:!1}),e.lib=function(){return i},e.loaded=!0,e.lib}finally{e.loading=void 0}})(),e.loading):(e.lib=function(){return a},e.loaded=!0,e.lib)},shareConfig:{singleton:!0,requiredVersion:`*`,strictVersion:!1,eager:!1}},"@mui/material":{name:`@mui/material`,version:`9.5.0`,scope:[`default`],loaded:!1,materialize:!0,eager:!1,from:`ConfigCustomTr064Set`,canLiveRebind:!0,get(){let e=i[`@mui/material`];return e.lib?e.lib:(e.loading||=(async()=>{try{let{"@mui/material":n}=r,i=t({...await n()});return i.__esModule!==!0&&Object.defineProperty(i,"__esModule",{value:!0,enumerable:!1}),e.lib=function(){return i},e.loaded=!0,e.lib}finally{e.loading=void 0}})(),e.loading)},shareConfig:{singleton:!0,requiredVersion:`*`,strictVersion:!1,eager:!1}},"@mui/icons-material":{name:`@mui/icons-material`,version:`9.5.0`,scope:[`default`],loaded:!1,materialize:!0,eager:!1,from:`ConfigCustomTr064Set`,canLiveRebind:!0,get(){let e=i[`@mui/icons-material`];return e.lib?e.lib:(e.loading||=(async()=>{try{let{"@mui/icons-material":n}=r,i=t({...await n()});return i.__esModule!==!0&&Object.defineProperty(i,"__esModule",{value:!0,enumerable:!1}),e.lib=function(){return i},e.loaded=!0,e.lib}finally{e.loading=void 0}})(),e.loading)},shareConfig:{singleton:!0,requiredVersion:`*`,strictVersion:!1,eager:!1}},"@iobroker/gui-components":{name:`@iobroker/gui-components`,version:`10.3.9`,scope:[`default`],loaded:!1,materialize:!0,eager:!1,from:`ConfigCustomTr064Set`,canLiveRebind:!0,get(){let e=i[`@iobroker/gui-components`];return e.lib?e.lib:(e.loading||=(async()=>{try{let{"@iobroker/gui-components":n}=r,i=t({...await n()});return i.__esModule!==!0&&Object.defineProperty(i,"__esModule",{value:!0,enumerable:!1}),e.lib=function(){return i},e.loaded=!0,e.lib}finally{e.loading=void 0}})(),e.loading)},shareConfig:{singleton:!0,requiredVersion:`*`,strictVersion:!1,eager:!1}},"@iobroker/json-config":{name:`@iobroker/json-config`,version:`10.1.2`,scope:[`default`],loaded:!1,materialize:!0,eager:!1,from:`ConfigCustomTr064Set`,canLiveRebind:!0,get(){let e=i[`@iobroker/json-config`];return e.lib?e.lib:(e.loading||=(async()=>{try{let{"@iobroker/json-config":n}=r,i=t({...await n()});return i.__esModule!==!0&&Object.defineProperty(i,"__esModule",{value:!0,enumerable:!1}),e.lib=function(){return i},e.loaded=!0,e.lib}finally{e.loading=void 0}})(),e.loading)},shareConfig:{singleton:!0,requiredVersion:`*`,strictVersion:!1,eager:!1}}},a=[];export{a as usedRemotes,i as usedShared};