iobroker.tr-064 5.1.6 → 5.2.1

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 (117) hide show
  1. package/README.md +31 -7
  2. package/admin/custom/.vite/manifest.json +69 -69
  3. package/admin/custom/assets/Components-B0WiJjgm.js +1 -0
  4. package/admin/custom/assets/PersonAddresses-Zuk1Gbzv.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/i18n/de.json +4 -1
  19. package/admin/custom/i18n/en.json +4 -1
  20. package/admin/custom/i18n/es.json +4 -1
  21. package/admin/custom/i18n/fr.json +4 -1
  22. package/admin/custom/i18n/it.json +4 -1
  23. package/admin/custom/i18n/nl.json +4 -1
  24. package/admin/custom/i18n/pl.json +4 -1
  25. package/admin/custom/i18n/pt.json +4 -1
  26. package/admin/custom/i18n/ru.json +4 -1
  27. package/admin/custom/i18n/uk.json +4 -1
  28. package/admin/custom/i18n/zh-cn.json +4 -1
  29. package/admin/custom/mf-manifest.json +1 -1
  30. package/admin/dm-widgets/.vite/manifest.json +31 -31
  31. package/admin/dm-widgets/assets/Components-BjwJD5XF.js +4 -0
  32. 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
  33. 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
  34. package/admin/dm-widgets/assets/{dist-DAUjjciP.js → dist-BkS8HKl2.js} +1 -1
  35. package/admin/dm-widgets/assets/helpers-ClFTp7rx.js +1 -0
  36. package/admin/dm-widgets/assets/{hostInit-DQpykEkM.js → hostInit-DEK6nxUq.js} +1 -1
  37. package/admin/dm-widgets/assets/{no-page-C-g_PIyM.js → no-page-DXBOpctw.js} +2 -2
  38. package/admin/dm-widgets/assets/{pendingShares-CNny_2LZ.js → pendingShares-BZTJ8U1k.js} +2 -2
  39. package/admin/dm-widgets/assets/translations-DD1c0Wnf.js +1 -0
  40. package/{widgets/tr-064/assets/utils-DEUY4RDL.js → admin/dm-widgets/assets/utils-D1AcFl0O.js} +1 -1
  41. package/admin/dm-widgets/assets/vite-preload-helper-BbbETgeG.js +1 -0
  42. package/admin/dm-widgets/customDevices.js +2 -2
  43. package/admin/dm-widgets/mf-manifest.json +1 -1
  44. package/admin/dm-widgets/person.svg +6 -0
  45. package/admin/i18n/de.json +14 -0
  46. package/admin/i18n/en.json +14 -0
  47. package/admin/i18n/es.json +14 -0
  48. package/admin/i18n/fr.json +14 -0
  49. package/admin/i18n/it.json +14 -0
  50. package/admin/i18n/nl.json +14 -0
  51. package/admin/i18n/pl.json +14 -0
  52. package/admin/i18n/pt.json +14 -0
  53. package/admin/i18n/ru.json +14 -0
  54. package/admin/i18n/uk.json +14 -0
  55. package/admin/i18n/zh-cn.json +14 -0
  56. package/admin/jsonConfig.json +122 -3
  57. package/build/lib/presence.js +436 -0
  58. package/build/lib/presence.js.map +1 -0
  59. package/build/lib/tr064.js +20 -5
  60. package/build/lib/tr064.js.map +1 -1
  61. package/build/lib/utils.js +21 -0
  62. package/build/lib/utils.js.map +1 -1
  63. package/build/main.js +35 -2
  64. package/build/main.js.map +1 -1
  65. package/io-package.json +52 -28
  66. package/package.json +1 -1
  67. package/widgets/tr-064/.vite/manifest.json +134 -110
  68. package/widgets/tr-064/assets/Generic-TRWFbzuc.js +1 -0
  69. package/widgets/tr-064/assets/{MeshView-bJbQ9vK6.js → MeshView-D8u-FaDb.js} +1 -1
  70. package/widgets/tr-064/assets/PresenceSelect-GSoLwxIO.js +1 -0
  71. package/widgets/tr-064/assets/{Tr064FritzBox-BBZpOf_u.js → Tr064FritzBox-DmpfGQa3.js} +1 -1
  72. package/widgets/tr-064/assets/{Tr064Mesh-CeNXlM2a.js → Tr064Mesh-C5J7u8x-.js} +1 -1
  73. package/widgets/tr-064/assets/Tr064Person-BCR6CDF7.js +1 -0
  74. package/widgets/tr-064/assets/Tr064Presence-CEQzI_rf.js +1 -0
  75. 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
  76. package/widgets/tr-064/assets/_virtual_mf___mfe_internal__vis2Tr064Widgets__mf_owner__177553934835196__loadShare__shared-ZlVQj1oA.js +2 -0
  77. 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
  78. 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
  79. 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
  80. package/widgets/tr-064/assets/defineProperty-Ba_vd0xC.js +10 -0
  81. package/widgets/tr-064/assets/{dist-DAUjjciP.js → dist-BkS8HKl2.js} +1 -1
  82. 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
  83. package/widgets/tr-064/assets/helpers-ClFTp7rx.js +1 -0
  84. package/widgets/tr-064/assets/{hostInit-CaekyPEZ.js → hostInit-DiVyQxZ5.js} +1 -1
  85. package/widgets/tr-064/assets/{pendingShares-D9r9YlHr.js → pendingShares-dmF1p6Vs.js} +2 -2
  86. package/widgets/tr-064/assets/translations-Ck6haIQU.js +1 -0
  87. package/{admin/dm-widgets/assets/utils-DEUY4RDL.js → widgets/tr-064/assets/utils-D1AcFl0O.js} +1 -1
  88. package/widgets/tr-064/assets/vite-preload-helper-BbbETgeG.js +1 -0
  89. package/widgets/tr-064/customWidgets.js +2 -2
  90. package/widgets/tr-064/img/prev_tr064_person.png +0 -0
  91. package/widgets/tr-064/mf-manifest.json +1 -1
  92. package/admin/custom/assets/Components-NzvMTX4W.js +0 -1
  93. package/admin/custom/assets/MeshTopology-mEnzehAC.js +0 -4
  94. package/admin/custom/assets/_virtual_mf-localSharedImportMap___mfe_internal__ConfigCustomTr064Set__mf_owner__1-Cenjta-f.js +0 -1
  95. package/admin/custom/assets/_virtual_mf___mfe_internal__ConfigCustomTr064Set__mf_owner__259378411809170__loadShare__shared-C-z_ew1q.js +0 -2
  96. 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
  97. package/admin/custom/assets/helpers-B6m49UKI.js +0 -1
  98. package/admin/custom/assets/pendingShares-_Lyy3-xQ.js +0 -2
  99. package/admin/custom/assets/vite-preload-helper-DjNwdemH.js +0 -1
  100. package/admin/dm-widgets/assets/Components-BjcNBG0-.js +0 -4
  101. package/admin/dm-widgets/assets/helpers-LL3aTdF3.js +0 -1
  102. package/admin/dm-widgets/assets/translations-CZMfeIvV.js +0 -1
  103. package/admin/dm-widgets/assets/vite-preload-helper-DjNwdemH.js +0 -1
  104. package/widgets/tr-064/assets/Generic-CB13arWC.js +0 -1
  105. package/widgets/tr-064/assets/Tr064Presence-Br3Z1Vay.js +0 -1
  106. package/widgets/tr-064/assets/_virtual_mf___mfe_internal__vis2Tr064Widgets__mf_owner__105226804110546__loadShare__shared-Db_nfl79.js +0 -2
  107. 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
  108. package/widgets/tr-064/assets/defineProperty-DeZ0csto.js +0 -10
  109. package/widgets/tr-064/assets/helpers-LL3aTdF3.js +0 -1
  110. package/widgets/tr-064/assets/translations-CqowGBNV.js +0 -1
  111. package/widgets/tr-064/assets/vite-preload-helper-DjNwdemH.js +0 -1
  112. /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
  113. /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
  114. /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
  115. /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
  116. /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
  117. /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. In the column "MAC / IP" type a part of the name, MAC or IP and choose the device from the list of the Fritz!Box (devices of the tab "Devices" are offered too); an address which is not in the list can simply be typed. The addresses are stored 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,11 @@ 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.1 (2026-10-13)
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
+ - (@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
+ - (@GermanBluefox) New widget "Person" for vis-2 and `ioBroker.devices`, the person is selected by name; the vis-2 widget "Presence" can list persons
228
+
201
229
  ### 5.1.6 (2026-10-07)
202
230
  - (@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
231
 
@@ -217,10 +245,6 @@ If you switch from the adapter tr-064-community, you can copy the complete devic
217
245
  - (@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
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
219
247
 
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
248
 
225
249
  [Older changelogs can be found there](CHANGELOG_OLD.md)
226
250
 
@@ -1,75 +1,75 @@
1
1
  {
2
- "_MeshTopology-mEnzehAC.js": {
3
- "file": "assets/MeshTopology-mEnzehAC.js",
4
- "name": "MeshTopology",
2
+ "_PersonAddresses-Zuk1Gbzv.js": {
3
+ "file": "assets/PersonAddresses-Zuk1Gbzv.js",
4
+ "name": "PersonAddresses",
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-BG9-FDdj.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
+ "_PersonAddresses-Zuk1Gbzv.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-B0WiJjgm.js",
93
93
  "name": "Components",
94
94
  "src": "src/Components.tsx",
95
95
  "isEntry": true,
96
96
  "imports": [
97
- "_MeshTopology-mEnzehAC.js"
97
+ "_PersonAddresses-Zuk1Gbzv.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{n as e,t}from"./PersonAddresses-Zuk1Gbzv.js";var n={MeshTopology:e,PersonAddresses:t};export{n 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,Nn as y,O as b,On as x,Ot as S,Pn as C,Qn as te,Qt as w,R as ne,Ri as re,Rn as ie,Rt as ae,Sn as T,Tn as E,U as D,Ui as O,V as oe,Xt as k,Yt as A,Zn as j,_n as M,bi as N,bn as se,bt as P,ct as ce,d as F,dn as I,dt as L,en as le,fn as ue,gt as de,jt as fe,kn as pe,kt as me,ln as he,lr as ge,lt as _e,mn as ve,nn as ye,pn as be,qn as xe,qr as R,qt as Se,rn as Ce,tn as we,un as Te,vi as Ee,yi as z,yn as De,zn as Oe}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 ke}from"./_virtual_mf___mfe_internal__ConfigCustomTr064Set__mf_owner__80542807241481__loadShare__shared-C3F6xhja.js";function Ae(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 je(e){return!!e&&(e.state||``).toUpperCase()===`CONNECTED`}function B(e,t){return e?!je(e)&&je(t)?t:e:t}function V(e){return e.configured||e.name||e.mac||e.uid}function Me(e,t){return!!e.node.configured==!!t.node.configured?e.connected===t.connected?V(e.node).localeCompare(V(t.node)):e.connected?-1:1:e.node.configured?-1:1}function Ne(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 H(e){return(e==null?void 0:e.rcpiTo)??(e==null?void 0:e.rcpiFrom)}function Pe(e){return e>=-60?4:e>=-70?3:e>=-80?2:1}function Fe(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,B(o.get(e.to),e)):a(e.from)?s.set(e.to,B(s.get(e.to),e)):a(e.to)&&s.set(e.from,B(s.get(e.from),Ne(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=je(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?Ae(n):``;f.push({uid:e.uid,name:V(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:H(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(Me)),d.sort(Me),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 U(e,t){return t&&Ie(e)?56:40}function Ie(e){return e.clients.some(e=>e.connected&&H(e.link)!==void 0)}function Le(e){return e<=8?1:e<=20?2:e<=48?3:4}function Re(e,t,n){let r=Math.ceil(e/t);return 60+(e?r*(n+6)-6+10:0)}function ze(e,t=!1){let n=[],r=[],i=new Map,a=e=>{let n=e.clients.length,r=Le(n);return{w:Math.max(240,r*340+(r-1)*6+20),h:Re(n,r,U(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:U(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 Be(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=U(e,n),h={view:e,x:c,y:a,w:l,h:Re(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 Ve(e,t,n=!1){let r=ze(e,n);return r.width<=t?r:Be(e,t,n)}function W(e,t,n=!1){return Math.max(3,Math.floor(e/(t*(n?.62:.56))))}function G(e,t){return e.length>t?`${e.substring(0,Math.max(1,t-1))}…`:e}function K(e){if(!e)return`–`;let t=e/1e3;return t>=10?Math.round(t).toString():t.toFixed(1)}var He={COMPUTER:ne,STORAGE:w,SMARTPHONE:_,TABLET:le,GAMING_DEVICE:k,SET_TOP_BOX:Ce,PRINTER:v,NETWORK_SWITCH:_e,SPEAKER:A,ROBOT:Se,PHONE:s,IP_PHONE:S,CIRCUIT_BOARD:oe,CAMERA:i,DOOR_LOCK:de,DOOR_BELL:D,SHUTTER:c,AIR_CONDITIONER:ce,LAMP:L,THERMOSTAT:we,BUTTON:ye,SOCKET:fe,SENSOR:h,MONITOR:P,SMART_WATCH:b,ROUTER:ae};function Ue(e){return e&&He[e]||f}function We(e){let t=Ue(e.deviceClass);return z(t,{x:e.x,y:e.y,width:e.size,height:e.size,sx:{width:e.size,height:e.size,color:e.color}})}var Ge=`not alive`,Ke=`not connected`,qe=`not supported`,q=`timeout`;async function Je(e,t,n=2e4){try{let r=await e.getState(`system.adapter.${t}.alive`);if(!(r!=null&&r.val))return{error:Ge,nodes:[],links:[]};let i,a=new Promise(e=>{i=setTimeout(()=>e(q),n)}),o=e.sendTo(t,`mesh`,{}),s=await Promise.race([o,a]);return clearTimeout(i),s===`timeout`||!s||typeof s!=`object`?{error:q,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 Ye(e,t,n,r,i=2e4){try{let a=await e.getState(`system.adapter.${t}.alive`);if(!(a!=null&&a.val))return Ge;let o,s=new Promise(e=>{o=setTimeout(()=>e(q),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`?q:l.error||void 0}catch(e){return(e==null?void 0:e.message)||String(e)}}var Xe=class{constructor(e){R(this,`options`,void 0),R(this,`timer`,null),R(this,`running`,!1),R(this,`stopped`,!0),R(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 Je(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 Ye(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)}},J={2.4:`#f59e0b`,5:`#3b82f6`,6:`#8b5cf6`,LAN:`#10b981`,other:`#9ca3af`},Ze=13,Qe=26,$e=16,et=63,tt=600,nt=63,rt=760,it=480;function at(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 ot(e,t){try{window.localStorage.setItem(e,JSON.stringify(t))}catch{}}function Y(e,t){return e.vendor||(e.randomMac?t(`tr064_randomMac`):``)}function X(e){switch(e){case`2.4`:case`5`:case`6`:return`${e} GHz`;case`LAN`:return`LAN`;default:return``}}function st(e,t){switch(e){case Ge:return{severity:`info`,text:t(`tr064_startInstance`)};case Ke:return{severity:`warning`,text:t(`tr064_notConnected`)};case qe:return{severity:`warning`,text:t(`tr064_notSupported`)};case q:return{severity:`warning`,text:t(`tr064_timeout`)};default:return{severity:`warning`,text:t(`tr064_error`,e)}}}function ct(e){return e.connected&&(e.curDown||e.curUp)?`↓ ${K(e.curDown)} / ↑ ${K(e.curUp)}`:``}var lt=`#ef4444`;function ut(e,t,n){return Pe(t)===1||n===`too_far`?lt:J[e||`other`]}function dt(e){let t=Pe(e.rcpi);return z(`g`,{transform:`translate(${e.x}, ${e.y})`,children:[0,1,2,3].map(n=>{let r=3+n*2.5;return z(`rect`,{x:n*3.3,y:-r,width:2.4,height:r,rx:.8,fill:e.color,opacity:n<t?1:.22},n)})})}function ft(e){return e===void 0?``:`${e} dBm`}function pt(e,t){return e?t(`tr064_lastSeen`,new Date(e).toLocaleString()):``}function mt(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 ht(e){return z(E,{component:`span`,sx:{display:`inline-block`,flexShrink:0,width:10,height:10,borderRadius:`2px`,backgroundColor:J[e.kind]}})}function gt(){return z(E,{sx:{display:`flex`,gap:1.5,alignItems:`center`,flexWrap:`wrap`},children:[`2.4`,`5`,`6`,`LAN`].map(e=>N(E,{sx:{display:`flex`,alignItems:`center`,gap:.5},children:[z(ht,{kind:e}),z(a,{variant:`caption`,children:X(e)})]},e))})}function _t(e,t,n,r){var i;let a=Ae(e.link),o=((i=e.link.state)==null?void 0:i.toUpperCase())===`CONNECTED`,s=[X(a)||e.link.type,o&&e.link.curDown?`${K(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`,K(e.link.curDown),K(e.link.curUp)):``,...mt(e.link,void 0,r),o?``:pt(e.link.lastConnected,r)].filter(Boolean);return N(`g`,{children:[z(`title`,{children:c.join(`
2
+ `)}),z(`path`,{d:e.d,fill:`none`,stroke:J[a],strokeWidth:2.5,strokeDasharray:o?void 0:`6 4`}),z(`text`,{x:e.labelX,y:e.labelY,fontSize:11,fill:n.palette.text.secondary,children:s})]},`edge-${t}`)}function vt(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?Y(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=W(e.w-20-(m?m.length*6.2+8:0),14,!0),g=W(e.w-20,11);return N(`g`,{transform:`translate(${e.x}, ${e.y})`,children:[z(`title`,{children:[o,a==null?void 0:a.model,a?Y(a,n):``,a==null?void 0:a.mac,a==null?void 0:a.ip,f?n(`tr064_clickToRename`):``].filter(Boolean).join(`
3
+ `)}),z(`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`}),z(`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:G(o,h)}),z(`text`,{x:10,y:42,fontSize:11,fill:i.text.secondary,children:G(d,g)}),z(`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=Ae(t.link),p=!!t.node.configured,m=t.node.configured||t.node.name||t.node.mac,h=r.showVendor?Y(t.node,n):``,g=e.chipH>=56&&!!h,_=t.connected?H(t.link):void 0,ee=Math.max(X(f)?34:0,_===void 0?0:et),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?``:ut(f,_,t.node.position),C=[p?n(`tr064_configuredAs`,t.node.configured):``,t.node.name,Y(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`,K(t.link.curDown),K(t.link.curUp)):``,...t.connected?mt(t.link,t.node.position,n):[],t.connected?``:pt((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:[z(`title`,{children:C.join(`
4
+ `)}),z(`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`}),z(`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:J[f]}),z(`rect`,{x:Ze,y:(e.chipH-Qe)/2,width:Qe,height:Qe,rx:6,fill:l(J[f],.14)}),z(We,{deviceClass:t.node.deviceClass,x:18,y:(e.chipH-$e)/2,size:$e,color:J[f]}),z(`text`,{x:47,y:g?19:17,fontSize:12.5,fontWeight:p?700:600,fill:p?i.primary.main:i.text.primary,children:G(m,W(v,12.5,!0))}),h?z(`text`,{x:47,y:g?34:31,fontSize:10,fontStyle:`italic`,opacity:.75,fill:i.text.secondary,children:G(h,W(y-x,10))}):null,b?z(`text`,{x:x?47+y:47,y:g?48:31,fontSize:10,textAnchor:x?`end`:`start`,fill:i.text.secondary,children:G(b,W(y,10))}):null,z(`text`,{x:e.chipW-8,y:g?19:16,fontSize:10,textAnchor:`end`,fill:i.text.secondary,children:X(f)}),_===void 0?null:N(Ee,{children:[z(dt,{rcpi:_,x:e.chipW-8-et,y:g?41:34,color:S}),z(`text`,{x:e.chipW-8,y:g?41:34,fontSize:10.5,textAnchor:`end`,fill:S,children:ft(_)})]})]},t.node.uid)})]},`card-${(a==null?void 0:a.uid)||`unassigned`}`)}function yt(e){let{tree:t,width:n,t:r,theme:i,showVendor:o,onRename:s}=e,c=n>=rt,l=n>=it,u=l?void 0:{px:1};return N(he,{size:`small`,stickyHeader:!0,children:[z(be,{children:N(ve,{children:[z(I,{sx:u,children:r(`tr064_device`)}),l?z(I,{children:r(`tr064_accessPoint`)}):null,z(I,{sx:u,children:r(`tr064_connection`)}),l?z(I,{children:r(`tr064_state`)}):null,l?z(I,{children:r(`tr064_signal`)}):null,l?z(I,{children:r(`tr064_rate`)}):null,c?z(I,{children:r(`tr064_mac`)}):null,c?z(I,{children:r(`tr064_ip`)}):null,s?z(I,{sx:{width:40}}):null]})}),z(Te,{children:t.rows.map(e=>N(ve,{sx:{opacity:e.connected?1:.6},children:[N(I,{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(E,{sx:{display:`flex`,alignItems:`center`,gap:.75},children:[z(E,{component:Ue(e.deviceClass),sx:{fontSize:17,flex:`0 0 auto`,color:e.kind?J[e.kind]:`text.secondary`}}),z(`span`,{children:e.name})]}),o&&Y(e,r)?z(a,{variant:`caption`,component:`div`,color:`text.secondary`,sx:{fontStyle:`italic`,opacity:.7,fontWeight:400},children:Y(e,r)}):null,l?null:z(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?z(I,{children:e.accessPoint||r(`tr064_notAssigned`)}):null,z(I,{sx:{...u,whiteSpace:`nowrap`},children:e.kind?N(E,{sx:{display:`flex`,alignItems:`center`,gap:.75},children:[z(ht,{kind:e.kind}),X(e.kind)||e.type]}):null}),l?N(I,{children:[e.connected?r(`tr064_connected`):r(`tr064_disconnected`),!e.connected&&e.lastConnected?z(a,{variant:`caption`,component:`div`,color:`text.secondary`,children:pt(e.lastConnected,r)}):null]}):null,l?N(I,{sx:{whiteSpace:`nowrap`},children:[e.connected&&e.rcpi!==void 0?N(E,{sx:{display:`flex`,alignItems:`center`,gap:.75},children:[z(E,{component:`svg`,viewBox:`0 0 13 11`,sx:{width:13,height:11,flex:`0 0 auto`},children:z(dt,{rcpi:e.rcpi,x:0,y:11,color:ut(e.kind,e.rcpi,e.position)})}),ft(e.rcpi)]}):null,e.connected&&(e.position===`too_far`||e.position===`too_close`)?z(a,{variant:`caption`,component:`div`,color:e.position===`too_far`?`warning.main`:`text.secondary`,children:r(`tr064_position_${e.position}`)}):null]}):null,l?z(I,{sx:{whiteSpace:`nowrap`},children:ct(e)}):null,c?z(I,{sx:{fontFamily:`monospace`},children:e.mac}):null,c?z(I,{children:e.ip||``}):null,s?z(I,{sx:{...u,width:40},children:z(te,{size:`small`,title:r(`tr064_rename`),onClick:()=>s(e.uid),children:z(d,{fontSize:`small`})})}):null]},e.uid))})]})}function bt(e){let{node:t,t:n,onClose:i,onRename:o}=e,[s,c]=O(t.name||``),[l,f]=O(!1),[p,h]=O(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(ie,{open:!0,fullWidth:!0,maxWidth:`sm`,onClose:l?void 0:i,children:[z(m,{children:n(`tr064_renameTitle`)}),N(r,{children:[z(a,{variant:`body2`,color:`text.secondary`,sx:{mb:2},children:[t.mac,Y(t,n),t.ip].filter(Boolean).join(` · `)}),z(M,{fullWidth:!0,autoFocus:!0,variant:`standard`,label:n(`tr064_newName`),value:s,disabled:l,error:!!p,slotProps:{htmlInput:{maxLength:nt}},onChange:e=>c(e.target.value),onKeyUp:e=>{e.key===`Enter`&&_()}}),z(j,{severity:`info`,sx:{mt:2},children:n(`tr064_renameHint`)}),p?z(j,{severity:`error`,sx:{mt:1},children:n(`tr064_renameFailed`,p)}):null]}),N(Oe,{children:[z(pe,{variant:`contained`,disabled:l||!g,startIcon:l?z(C,{size:16}):z(d,{}),onClick:_,children:n(`tr064_rename`)}),z(pe,{variant:`contained`,color:`inherit`,disabled:l,startIcon:z(u,{}),onClick:i,children:n(`tr064_cancel`)})]})]})}function xt(r){let{data:i,loading:s,error:c,onRefresh:l,onRename:u,t:d,compact:f,height:m}=r,h=r.storageKey||`tr064.meshTopology`,_=x(),v=n(()=>r.themeType&&r.themeType!==_.palette.mode?o({palette:{mode:r.themeType}}):_,[_,r.themeType]),[y,b]=O(()=>at(h)),S=e=>{let t={...y,...e};b(t),ot(h,t)},[w,ne]=O(null),ie=w?((i==null?void 0:i.nodes)||[]).find(e=>e.uid===w):void 0,ae=u&&i!=null&&i.canRename?e=>ne(e):void 0,T=p(null),[D,oe]=O(0);re(()=>{let e=T.current;if(!e||(oe(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);oe(e=>e===n?e:n)});return t.observe(e),()=>t.disconnect()},[]);let k=n(()=>i?Fe(i,{onlyConfigured:y.onlyConfigured,showDisconnected:y.showDisconnected}):null,[i,y.onlyConfigured,y.showDisconnected]),A=Math.max(0,D-2),M=n(()=>{if(!k||!A)return null;let e=[...k.roots];return k.unassigned.length&&e.push({clients:k.unassigned,children:[]}),Ve(e,A,y.showVendor)},[k,A,y.showVendor]),P=!!f||D>0&&D<tt,ce=m!=null&&m!==``,F={overflow:`auto`,minHeight:0,border:`1px solid ${v.palette.divider}`,borderRadius:1,...ce?{flex:`1 1 auto`}:{maxHeight:`75vh`}},I=N(E,{sx:{display:`flex`,alignItems:`center`,flexWrap:`wrap`,columnGap:P?.5:1,rowGap:.5,mb:1,flex:`0 0 auto`},children:[P?z(te,{size:`small`,title:d(`tr064_refresh`),disabled:s,onClick:()=>l(),children:s?z(C,{size:18}):z(g,{fontSize:`small`})}):z(pe,{variant:`outlined`,size:`small`,startIcon:s?z(C,{size:16}):z(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=>z(xe,{sx:P?{mr:.5,ml:0}:void 0,control:z(ee,{size:`small`,sx:P?{p:.5}:void 0,checked:y[e.key],onChange:t=>S({[e.key]:t.target.checked})}),label:z(a,{variant:P?`body2`:`body1`,children:e.label})},e.key)),N(se,{size:`small`,exclusive:!0,value:y.viewMode,onChange:(e,t)=>t&&S({viewMode:t}),children:[z(De,{value:`graph`,title:d(`tr064_graph`),sx:P?{p:.5}:void 0,children:z(me,{fontSize:`small`})}),z(De,{value:`table`,title:d(`tr064_table`),sx:P?{p:.5}:void 0,children:z(e,{fontSize:`small`})})]}),z(E,{sx:{flexGrow:1}}),N(E,{sx:{display:`flex`,alignItems:`center`,flexWrap:`wrap`,columnGap:1.5,rowGap:.5},children:[z(gt,{}),i!=null&&i.ts?z(a,{variant:`caption`,color:`text.secondary`,children:d(`tr064_updated`,new Date(i.ts).toLocaleTimeString())}):null]})]}),L;if(c&&(c===`not alive`||!i)){let e=st(c,d);L=z(j,{severity:e.severity,children:e.text})}else if(!i||!k)L=N(E,{sx:{display:`flex`,alignItems:`center`,gap:1,p:2},children:[z(C,{size:20}),z(a,{children:d(`tr064_loading`)})]});else{let e=c?st(c,d):null;L=N(Ee,{children:[e?z(j,{severity:e.severity,sx:{mb:1,flex:`0 0 auto`},children:e.text}):null,!k.roots.length&&!k.unassigned.length?z(j,{severity:`info`,children:d(`tr064_noData`)}):y.viewMode===`table`?z(ue,{sx:F,children:z(yt,{tree:k,width:A,t:d,theme:v,showVendor:y.showVendor,onRename:ae})}):z(E,{sx:{...F,backgroundColor:v.palette.background.default},children:M?N(`svg`,{width:M.width,height:M.height,style:{display:`block`,fontFamily:v.typography.fontFamily},children:[M.edges.map((e,t)=>_t(e,t,v,d)),M.cards.map(e=>vt(e,v,d,{showVendor:y.showVendor,onRename:ae}))]}):null})]})}let le=N(E,{ref:T,sx:{width:`100%`,minWidth:0,display:`flex`,flexDirection:`column`,...ce?{height:m}:{}},children:[I,L,ie&&u?z(bt,{node:ie,t:d,onClose:()=>ne(null),onRename:u}):null]});return v===_?le:z(t,{theme:v,children:le})}var St=class e extends ke{constructor(e){super(e),R(this,`loader`,null),this.state={...this.state,data:null,loading:!1,error:null}}async componentDidMount(){await super.componentDidMount(),this.loader=new Xe({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 z(xt,{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`})}};R(St,`t`,(e,...t)=>F.t(e,...t));function Ct(e){return e.replace(/[^0-9a-fA-F]/g,``).length===12&&!e.includes(`::`)&&/^[0-9a-fA-F:\-.\s]+$/.test(e)}function wt(e){return Ct(e)||/^(\d{1,3})(\.\d{1,3}){3}$/.test(e)||/^[0-9a-fA-F:]+$/.test(e)}function Z(e){return Ct(e)?e.replace(/[^0-9a-fA-F]/g,``).toUpperCase():e.trim().toLowerCase()}function Q(e){return String(e||``).split(/[,;]/).map(e=>e.trim()).filter(Boolean)}var $=null,Tt=``,Et=class extends ke{constructor(e){super(e),this.state={...this.state,hosts:[],loading:!1}}async componentDidMount(){if(await super.componentDidMount(),!this.props.alive)return;let e=`${this.props.oContext.adapterName}.${this.props.oContext.instance}`;(!$||Tt!==e)&&(Tt=e,$=this.props.oContext.socket.sendTo(e,`discovery`,{onlyActive:!1}).then(e=>{let t=typeof e==`string`?JSON.parse(e):e;return Array.isArray(t)?t:[]}).catch(e=>(console.error(`Cannot read the devices of the box: ${String(e)}`),$=null,[]))),this.setState({loading:!0});let t=await $;this.setState({hosts:t,loading:!1})}getHosts(){var e;let t=[...this.state.hosts],n=new Set(t.map(e=>Z(e.mac))),r=((e=this.props.globalData)==null?void 0:e.devices)||[];for(let e of r)for(let r of Q(e.mac))Ct(r)&&!n.has(Z(r))&&(n.add(Z(r)),t.push({name:e.name||``,mac:r,ip:e.ip||``}));return t.sort((e,t)=>(e.name||e.mac).localeCompare(t.name||t.mac))}getUsedBy(){var e;let t=new Map;return(((e=this.props.globalData)==null?void 0:e.persons)||[]).forEach((e,n)=>{n!==this.props.arrayIndex&&Q(e.addresses).forEach(n=>t.set(Z(n),e.name||``))}),t}setAddresses(e){let t=e.flatMap(e=>Q(e)),n=t.filter((e,n)=>t.findIndex(t=>Z(t)===Z(e))===n);this.onChange(this.props.attr,n.join(`, `))}renderItem(e,t){let n=Q(ke.getValue(this.props.data,this.props.attr)),r=this.getHosts(),i=new Map;r.forEach(e=>{i.set(Z(e.mac),e),e.ip&&i.set(Z(e.ip),e)});let a=this.getUsedBy(),o=new Set(n.map(Z));return z(ge,{multiple:!0,freeSolo:!0,autoSelect:!0,fullWidth:!0,disabled:t,value:n,options:r.map(e=>e.mac),loading:this.state.loading,filterOptions:(e,{inputValue:t})=>{let n=t.trim().toLowerCase();return e.filter(e=>{if(o.has(Z(e)))return!1;if(!n)return!0;let t=i.get(Z(e));return[t==null?void 0:t.name,e,t==null?void 0:t.ip].some(e=>e==null?void 0:e.toLowerCase().includes(n))})},onChange:(e,t)=>this.setAddresses(t),renderOption:(e,t)=>{let n=i.get(Z(t)),r=a.get(Z(t)),{key:o,...s}=e;return N(E,{component:`li`,...s,sx:{display:`flex`,alignItems:`center`,gap:1},children:[z(E,{sx:{width:8,height:8,borderRadius:`50%`,flexShrink:0,bgcolor:n!=null&&n.active?`success.main`:`action.disabled`}}),N(E,{sx:{minWidth:0},children:[z(`div`,{children:(n==null?void 0:n.name)||t}),N(E,{sx:{fontSize:12,opacity:.7},children:[[t,n==null?void 0:n.ip].filter(Boolean).join(` · `),r===void 0?``:` · ${F.t(`tr064_usedBy`,r)}`]})]})]},o)},renderValue:(e,t)=>e.map((e,n)=>{let r=i.get(Z(e)),{key:a,...o}=t({index:n}),s=wt(e);return z(T,{title:s?[r==null?void 0:r.name,e,(r==null?void 0:r.ip)===e?``:r==null?void 0:r.ip].filter(Boolean).join(` · `):F.t(`tr064_invalidAddress`),children:z(y,{size:`small`,color:s?`default`:`error`,label:r!=null&&r.name?`${r.name} (${e})`:e,...o})},a)}),renderInput:e=>z(M,{...e,variant:`standard`,placeholder:n.length?``:F.t(`tr064_addressesPlaceholder`),slotProps:{...e.slotProps,input:{...e.slotProps.input,endAdornment:N(Ee,{children:[this.state.loading?z(C,{size:16}):null,e.slotProps.input.endAdornment]})}}})})}};export{St as n,Et 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};