iobroker.govee-smart 3.1.0 → 3.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.
- package/README.md +29 -31
- package/admin/custom/assets/Components-hKj8zaUs.js +1 -0
- package/admin/custom/assets/{_virtual_mf-localSharedImportMap___mfe_internal__ConfigCustomGoveeSegmentSet__mf_owner__1-0b3ub_8M.js → _virtual_mf-localSharedImportMap___mfe_internal__ConfigCustomGoveeSegmentSet__mf_owner__1-BuicsbV6.js} +1 -1
- package/admin/custom/assets/{_virtual_mf___mfe_internal__ConfigCustomGoveeSegmentSet__mf_owner__1__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-CDkXizQd.js → _virtual_mf___mfe_internal__ConfigCustomGoveeSegmentSet__mf_owner__1__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-DaF1Zf1l.js} +1 -1
- package/admin/custom/assets/_virtual_mf___mfe_internal__ConfigCustomGoveeSegmentSet__mf_owner__1__loadShare___mf_0_iobroker_mf_1_json_mf_2_config__loadShare__.js-CnzIXUif.js +125 -0
- package/admin/custom/assets/{_virtual_mf___mfe_internal__ConfigCustomGoveeSegmentSet__mf_owner__1__prebuild___mf_0_iobroker_mf_1_gui_mf_2_components__prebuild__-D--Cwr-f.js → _virtual_mf___mfe_internal__ConfigCustomGoveeSegmentSet__mf_owner__1__prebuild___mf_0_iobroker_mf_1_gui_mf_2_components__prebuild__-BvTjMUUw.js} +1 -1
- package/admin/custom/assets/{hostInit-DUi1Gdy1.js → hostInit-DW6B9EVG.js} +1 -1
- package/admin/custom/assets/{lib-8aH_uNin.js → lib-BcTWMr_r.js} +2 -2
- package/admin/custom/assets/{virtualExposes-PWwUj0Dy.js → virtualExposes-CEMLDRVW.js} +1 -1
- package/admin/custom/assets/virtual_mf-exposes-ssr___mfe_internal__ConfigCustomGoveeSegmentSet__customComponents_js-DTDtgUki.js +2 -0
- package/admin/custom/customComponents.js +1 -1
- package/admin/custom/i18n/de.json +0 -8
- package/admin/custom/i18n/en.json +0 -8
- package/admin/custom/i18n/es.json +0 -8
- package/admin/custom/i18n/fr.json +0 -8
- package/admin/custom/i18n/it.json +0 -8
- package/admin/custom/i18n/nl.json +0 -8
- package/admin/custom/i18n/pl.json +0 -8
- package/admin/custom/i18n/pt.json +0 -8
- package/admin/custom/i18n/ru.json +0 -8
- package/admin/custom/i18n/uk.json +0 -8
- package/admin/custom/i18n/zh-cn.json +0 -8
- package/admin/custom/mf-manifest.json +1 -1
- package/admin/i18n/de.json +0 -2
- package/admin/i18n/en.json +0 -2
- package/admin/i18n/es.json +0 -2
- package/admin/i18n/fr.json +0 -2
- package/admin/i18n/it.json +0 -2
- package/admin/i18n/nl.json +0 -2
- package/admin/i18n/pl.json +0 -2
- package/admin/i18n/pt.json +0 -2
- package/admin/i18n/ru.json +0 -2
- package/admin/i18n/uk.json +0 -2
- package/admin/i18n/zh-cn.json +0 -2
- package/build/lib/actionable-problems.js +8 -0
- package/build/lib/actionable-problems.js.map +2 -2
- package/build/lib/api-limits.js +65 -0
- package/build/lib/api-limits.js.map +7 -0
- package/build/lib/appliance-frames.js +6 -6
- package/build/lib/appliance-frames.js.map +2 -2
- package/build/lib/broker-commands.js +76 -0
- package/build/lib/broker-commands.js.map +7 -0
- package/build/lib/call-booking.js +83 -0
- package/build/lib/call-booking.js.map +7 -0
- package/build/lib/call-gate.js +122 -0
- package/build/lib/call-gate.js.map +7 -0
- package/build/lib/capability-mapper.js +73 -31
- package/build/lib/capability-mapper.js.map +2 -2
- package/build/lib/cloud-retry.js +2 -2
- package/build/lib/cloud-retry.js.map +2 -2
- package/build/lib/command-router.js +147 -57
- package/build/lib/command-router.js.map +2 -2
- package/build/lib/confirmation.js +54 -0
- package/build/lib/confirmation.js.map +7 -0
- package/build/lib/device-catalog.js +3 -0
- package/build/lib/device-catalog.js.map +2 -2
- package/build/lib/device-id-migration.js +3 -3
- package/build/lib/device-id-migration.js.map +2 -2
- package/build/lib/device-manager/cache.js +3 -0
- package/build/lib/device-manager/cache.js.map +2 -2
- package/build/lib/device-manager/cloud-merge.js.map +2 -2
- package/build/lib/device-manager/library-loader.js +11 -13
- package/build/lib/device-manager/library-loader.js.map +2 -2
- package/build/lib/device-manager/lookups.js +3 -0
- package/build/lib/device-manager/lookups.js.map +2 -2
- package/build/lib/device-manager/mapping.js.map +2 -2
- package/build/lib/device-manager/reconciler.js.map +2 -2
- package/build/lib/device-manager.js +296 -250
- package/build/lib/device-manager.js.map +2 -2
- package/build/lib/device-registry.js +2 -2
- package/build/lib/device-registry.js.map +2 -2
- package/build/lib/diagnostics/byte-ring.js +91 -0
- package/build/lib/diagnostics/byte-ring.js.map +7 -0
- package/build/lib/diagnostics/log-ring.js +93 -0
- package/build/lib/diagnostics/log-ring.js.map +7 -0
- package/build/lib/diagnostics/placeholders.js +184 -0
- package/build/lib/diagnostics/placeholders.js.map +7 -0
- package/build/lib/diagnostics/report-file.js +50 -0
- package/build/lib/diagnostics/report-file.js.map +7 -0
- package/build/lib/diagnostics/report-jobs.js +177 -0
- package/build/lib/diagnostics/report-jobs.js.map +7 -0
- package/build/lib/diagnostics.js +301 -115
- package/build/lib/diagnostics.js.map +3 -3
- package/build/lib/{err-message.js → err-text.js} +8 -8
- package/build/lib/err-text.js.map +7 -0
- package/build/lib/error-category.js +67 -10
- package/build/lib/error-category.js.map +2 -2
- package/build/lib/govee-api-client.js +14 -8
- package/build/lib/govee-api-client.js.map +2 -2
- package/build/lib/govee-cloud-client.js +13 -13
- package/build/lib/govee-cloud-client.js.map +2 -2
- package/build/lib/govee-constants.js +1 -1
- package/build/lib/govee-constants.js.map +1 -1
- package/build/lib/govee-lan-client.js +103 -15
- package/build/lib/govee-lan-client.js.map +2 -2
- package/build/lib/govee-mqtt-client.js +72 -39
- package/build/lib/govee-mqtt-client.js.map +2 -2
- package/build/lib/govee-openapi-mqtt-client.js +32 -14
- package/build/lib/govee-openapi-mqtt-client.js.map +2 -2
- package/build/lib/group-fanout.js +49 -4
- package/build/lib/group-fanout.js.map +2 -2
- package/build/lib/handlers/account-handler.js +1 -1
- package/build/lib/handlers/account-handler.js.map +2 -2
- package/build/lib/handlers/app-version.js +3 -4
- package/build/lib/handlers/app-version.js.map +2 -2
- package/build/lib/handlers/cloud-creds-handler.js +4 -4
- package/build/lib/handlers/cloud-creds-handler.js.map +2 -2
- package/build/lib/handlers/cloud-retry-handler.js +20 -6
- package/build/lib/handlers/cloud-retry-handler.js.map +2 -2
- package/build/lib/handlers/cloud-state-loader.js +43 -25
- package/build/lib/handlers/cloud-state-loader.js.map +2 -2
- package/build/lib/handlers/connection-state.js +35 -6
- package/build/lib/handlers/connection-state.js.map +2 -2
- package/build/lib/handlers/device-events.js +2 -2
- package/build/lib/handlers/device-events.js.map +2 -2
- package/build/lib/handlers/device-reaper.js +0 -7
- package/build/lib/handlers/device-reaper.js.map +2 -2
- package/build/lib/handlers/diagnostics-handler.js +9 -45
- package/build/lib/handlers/diagnostics-handler.js.map +2 -2
- package/build/lib/handlers/diagnostics-report.js +155 -0
- package/build/lib/handlers/diagnostics-report.js.map +7 -0
- package/build/lib/handlers/dropdown-reset-helpers.js.map +2 -2
- package/build/lib/handlers/group-fanout-handler.js +4 -0
- package/build/lib/handlers/group-fanout-handler.js.map +2 -2
- package/build/lib/handlers/legacy-cleanup.js.map +2 -2
- package/build/lib/handlers/music-command.js.map +2 -2
- package/build/lib/handlers/online-sync.js +3 -2
- package/build/lib/handlers/online-sync.js.map +2 -2
- package/build/lib/handlers/snapshot-handler-glue.js.map +2 -2
- package/build/lib/handlers/state-change-router.js +63 -24
- package/build/lib/handlers/state-change-router.js.map +2 -2
- package/build/lib/handlers/wizard-handler.js.map +2 -2
- package/build/lib/http-client.js +21 -3
- package/build/lib/http-client.js.map +2 -2
- package/build/lib/known-objects.js +289 -0
- package/build/lib/known-objects.js.map +7 -0
- package/build/lib/local-snapshots.js +8 -8
- package/build/lib/local-snapshots.js.map +2 -2
- package/build/lib/log-once.js +95 -0
- package/build/lib/log-once.js.map +7 -0
- package/build/lib/message-router.js +14 -19
- package/build/lib/message-router.js.map +2 -2
- package/build/lib/native-key-migration.js +0 -3
- package/build/lib/native-key-migration.js.map +2 -2
- package/build/lib/network-address.js +85 -0
- package/build/lib/network-address.js.map +7 -0
- package/build/lib/pkcs12.js +598 -0
- package/build/lib/pkcs12.js.map +7 -0
- package/build/lib/rate-limiter.js +82 -8
- package/build/lib/rate-limiter.js.map +2 -2
- package/build/lib/reconnecting-mqtt-client.js +53 -3
- package/build/lib/reconnecting-mqtt-client.js.map +2 -2
- package/build/lib/report-placeholders.js +138 -0
- package/build/lib/report-placeholders.js.map +7 -0
- package/build/lib/segment-wizard.js +3 -3
- package/build/lib/segment-wizard.js.map +2 -2
- package/build/lib/sku-cache.js +5 -5
- package/build/lib/sku-cache.js.map +2 -2
- package/build/lib/state-manager.js +116 -75
- package/build/lib/state-manager.js.map +2 -2
- package/build/lib/timing-constants.js +12 -7
- package/build/lib/timing-constants.js.map +2 -2
- package/build/lib/types.js +4 -4
- package/build/lib/types.js.map +2 -2
- package/build/lib/wiki-device-sections.js +75 -0
- package/build/lib/wiki-device-sections.js.map +7 -0
- package/build/main.js +99 -58
- package/build/main.js.map +2 -2
- package/devices.json +60 -5
- package/io-package.json +28 -28
- package/package.json +13 -14
- package/src/lib/api-limits.json +88 -0
- package/admin/custom/assets/Components-BaqFjaqD.js +0 -1
- package/admin/custom/assets/_virtual_mf___mfe_internal__ConfigCustomGoveeSegmentSet__mf_owner__1__loadShare___mf_0_iobroker_mf_1_json_mf_2_config__loadShare__.js-whCpEChV.js +0 -1492
- package/admin/custom/assets/virtual_mf-exposes-ssr___mfe_internal__ConfigCustomGoveeSegmentSet__customComponents_js-BGm_Jg9F.js +0 -2
- package/build/lib/anonymiser.js +0 -246
- package/build/lib/anonymiser.js.map +0 -7
- package/build/lib/err-message.js.map +0 -7
- package/build/lib/log-channel-fail.js +0 -77
- package/build/lib/log-channel-fail.js.map +0 -7
package/README.md
CHANGED
|
@@ -6,6 +6,9 @@
|
|
|
6
6
|
|
|
7
7
|
**Support:** [](https://ko-fi.com/krobipd) [](https://paypal.me/krobipd)
|
|
8
8
|
|
|
9
|
+
> [!IMPORTANT]
|
|
10
|
+
> This adapter cannot be installed from github
|
|
11
|
+
|
|
9
12
|
Control all [Govee](https://www.govee.com/) WiFi products from ioBroker — lights, sensors and appliances. Bluetooth-only devices are not supported.
|
|
10
13
|
|
|
11
14
|
The adapter uses every available Govee channel (LAN, Cloud REST, AWS IoT MQTT, OpenAPI MQTT, App API) and picks whichever delivers the fastest answer for each device. Details in the **[Wiki](https://github.com/krobipd/ioBroker.govee-smart/wiki)**.
|
|
@@ -16,6 +19,8 @@ The adapter uses every available Govee channel (LAN, Cloud REST, AWS IoT MQTT, O
|
|
|
16
19
|
|
|
17
20
|
Full user documentation lives in the **[Wiki](https://github.com/krobipd/ioBroker.govee-smart/wiki)**.
|
|
18
21
|
|
|
22
|
+
A short guide ships with the adapter: [English](docs/en/README.md) · [Deutsch](docs/de/README.md).
|
|
23
|
+
|
|
19
24
|
| Topic | English | Deutsch |
|
|
20
25
|
| --------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- |
|
|
21
26
|
| Landing page | [Home](https://github.com/krobipd/ioBroker.govee-smart/wiki/Home) | [Startseite](https://github.com/krobipd/ioBroker.govee-smart/wiki/Startseite) |
|
|
@@ -58,8 +63,6 @@ For details and how to disable it, see the [Sentry plugin documentation](https:/
|
|
|
58
63
|
- ioBroker Admin >= 8.0.14
|
|
59
64
|
- A Govee account and at least one Govee WiFi device. LAN control needs a light with LAN mode enabled in the Govee Home app — see Govee's [LAN-supported device list](https://app-h5.govee.com/user-manual/wlan-guide).
|
|
60
65
|
|
|
61
|
-
> The adapter CANNOT be installed via GitHub: The adapter must be installed via the ioBroker repository (stable or latest).
|
|
62
|
-
|
|
63
66
|
---
|
|
64
67
|
|
|
65
68
|
## Getting started
|
|
@@ -95,6 +98,30 @@ This adapter's MQTT authentication and BLE-over-LAN (ptReal) protocol implementa
|
|
|
95
98
|
### **WORK IN PROGRESS**
|
|
96
99
|
-->
|
|
97
100
|
|
|
101
|
+
### 3.2.0 (2026-10-15)
|
|
102
|
+
|
|
103
|
+
- New: lights without a local connection switch through your Govee account, faster than through the Cloud
|
|
104
|
+
- Changed: a command shows as confirmed only when it really reached the device
|
|
105
|
+
- Changed: a group command shows as confirmed only when every light of the group took it
|
|
106
|
+
- New: a diagnostics report for each device in the Expert tab, with your personal data replaced by placeholders
|
|
107
|
+
- Changed: the datapoint diag.lastExport is removed from every device
|
|
108
|
+
- Improved: a device that does not answer no longer holds up the others
|
|
109
|
+
- Fixed: a device reached only through the Cloud shows offline while the Cloud is not connected
|
|
110
|
+
- Fixed: a heater's target temperature is shown and set in °C, also on models that work in °F
|
|
111
|
+
- Fixed: the refresh button of a light is confirmed only when Govee answered
|
|
112
|
+
- Changed: an untested model asks for a diagnostics report and never claims that it works
|
|
113
|
+
- New: seven models added as untested: Smart Gateway 1s (H5044, R5044), Wi-Fi Gateway (H5151), Smart Light (H610E, H610F), Outdoor String Lights 2 (H7030), Smart Fan (H7108)
|
|
114
|
+
- Improved: an outage of a Govee service is shown as a status instead of a stream of warnings
|
|
115
|
+
- Fixed: the network address chosen in the settings now applies to every connection to Govee
|
|
116
|
+
|
|
117
|
+
### 3.1.1 (2026-10-01)
|
|
118
|
+
|
|
119
|
+
- Fixed: a cloud command that fails because the Govee server name cannot be resolved is sent again within 10 seconds instead of being lost after one try
|
|
120
|
+
- Fixed: after a failed command the light's real state is read back right away, so its datapoint no longer stays on the wrong value — also without a Govee account
|
|
121
|
+
- Fixed: calls that never reached Govee (DNS or connection errors) no longer use up the daily budget, so an appliance is not blocked for the rest of the day
|
|
122
|
+
- Fixed: a group command that only some of its lights took now names the lights that did not switch and why, so a dark light no longer goes unnoticed
|
|
123
|
+
- Improved: connection errors in the log are written in plain words, e.g. that the Govee server name could not be resolved and the DNS is the likely cause
|
|
124
|
+
|
|
98
125
|
### 3.1.0 (2026-10-01)
|
|
99
126
|
|
|
100
127
|
- Fixed: a rejected background token refresh of the Govee account now counts toward the login protection and asks to check email/password instead of retrying silently
|
|
@@ -137,35 +164,6 @@ This adapter's MQTT authentication and BLE-over-LAN (ptReal) protocol implementa
|
|
|
137
164
|
- New: the H1741 battery table lamp reports its charge level in `sensor.battery`; Govee reports a fully charged battery as about 80 percent
|
|
138
165
|
- Fixed: fans and heaters with a numeric level (H7102, H7130) store it as a number, and the H7121 no longer puts a warning in the log at every refresh
|
|
139
166
|
|
|
140
|
-
### 2.41.0 (2026-09-26)
|
|
141
|
-
|
|
142
|
-
- Changed: Discovery follows the selected network interface only — the additional scan addresses setting is gone, and the broadcast goes to the network of the chosen card
|
|
143
|
-
- Fixed: `info.cloudConnected` turns false while the Govee Cloud stays unreachable and true again with its next answer — until now only a rejected API key cleared it
|
|
144
|
-
|
|
145
|
-
### 2.40.0 (2026-09-25)
|
|
146
|
-
|
|
147
|
-
- New: Optional additional scan addresses — lights in another subnet or behind a router that blocks multicast are found by asking them directly
|
|
148
|
-
- New: Heaters with an auto-stop setting get `control.auto_stop` — stop heating at the target temperature or keep it
|
|
149
|
-
- New: Models that report the cloud temperature in °F are converted to °C — the H5179 by default, 14 further models with the experimental switch
|
|
150
|
-
- Fixed: Cloud events such as lack of water, presence or a full ice bucket now reach their datapoints — until now none did
|
|
151
|
-
- Fixed: The segment count of strips that report in groups of three is measured correctly — H61A8 and H7020 no longer grow phantom or lose real segments
|
|
152
|
-
- Fixed: A strip nothing had measured yet accepts segment commands, uses its scenes over LAN and works in the wizard and in snapshots
|
|
153
|
-
- Fixed: A device the account still lists is no longer deleted when the cached device list misses it
|
|
154
|
-
- Fixed: A fresh account login is kept for the next reconnect, and successful logins are capped per hour — repeated logins can make Govee lock the account for 24 hours
|
|
155
|
-
- Fixed: After an account change the saved login of the previous account is no longer reused
|
|
156
|
-
- Fixed: Dropdowns send the value Govee declared, and a LAN light's colour-temperature range follows what the device reports
|
|
157
|
-
- Fixed: Group music plays the same mode on every member, and a member without music or without the scene no longer counts as reached
|
|
158
|
-
- Fixed: A Govee snapshot is activated by its name — reordering snapshots in the app no longer triggers the wrong one
|
|
159
|
-
- Fixed: A command that could not be sent is no longer confirmed, and a day whose cloud budget is spent refuses commands instead of queueing them until midnight
|
|
160
|
-
- Fixed: With the account connected, lights are still asked for their status once a minute and after every LAN command, so a lost command is corrected
|
|
161
|
-
- Fixed: Port 4002 taken by another program is now reported instead of silently losing the lights' replies, and `info.connection` turns false when the last device goes quiet
|
|
162
|
-
- Improved: Leftovers of very old versions, including emptied login fields, no longer linger in the instance settings — expect one extra restart right after the update
|
|
163
|
-
- Fixed: Stopping the adapter during its start no longer leaves parts of it running, and a message sent during the start is answered
|
|
164
|
-
- Fixed: The segment wizard is cancelled when you leave the card, and the connection card shows Govee's reason instead of a raw text key
|
|
165
|
-
- Fixed: The diagnostics report hides Govee account topics and the device's LAN address in number form, and a device name only replaces whole words
|
|
166
|
-
- Improved: Temperature, humidity, battery, air quality and filter life carry translated names — the cloud path wrote Govee's English wording in every language
|
|
167
|
-
- Improved: Bluetooth-only models are no longer listed as supported, and the Wi-Fi meat thermometer H5610 was added
|
|
168
|
-
|
|
169
167
|
[Older changelogs can be found there](CHANGELOG_OLD.md)
|
|
170
168
|
|
|
171
169
|
## Support
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./_virtual_mf___mfe_internal__ConfigCustomGoveeSegmentSet__mf_owner__1__loadShare___mf_0_iobroker_mf_1_json_mf_2_config__loadShare__.js-CnzIXUif.js";import{Ci as t,Ga as n,Hr as r,Ii as i,Ja as a,Jr as o,Kr as s,Oi as c,Pi as l,Si as u,Ua as d,Wa as f,Xr as p,_i as m,ci as h,ei as g,fi as _,fo as v,ni as y,un as b,xa as x,xi as S}from"./_virtual_mf___mfe_internal__ConfigCustomGoveeSegmentSet__mf_owner__1__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-DaF1Zf1l.js";v();function C(e){try{if(e instanceof Error){let t=`code`in e?e.code:void 0,n=e.message,r=e.name,i=String(n||(typeof t==`string`?t:r)),a=e.cause,o=``;if(a instanceof Error){let e=`code`in a?a.code:void 0,t=a.message;o=(typeof t==`string`?t:``)||(typeof e==`string`?e:``)}else a!=null&&(o=C(a));return o&&!i.includes(o)?`${i} (${o})`:i}return typeof e==`string`?e:typeof e==`function`?Object.prototype.toString.call(e):typeof e!=`object`||!e?String(e):JSON.stringify(e)??Object.prototype.toString.call(e)}catch{return Object.prototype.toString.call(e)}}var w=[`ok`,`verifyRequired`,`codeInvalid`,`passwordRejected`,`emailNotRegistered`,`rateLimited`,`accountLocked`,`loginWindowFull`,`loginFailed`,`mqttNotUp`,`codeSent`,`codeRejected`,`needCredentials`,`throttled`,`unknownAction`];function T(e,t){let n=(n,r)=>e.sendTo(t,`mqttAuth`,{action:n,email:r.email,password:r.password,code:r.code});return{testLogin:e=>n(`test`,e),requestCode:e=>n(`requestCode`,e)}}function E(e,t){let[n,r]=a.useState({cloud:!1,mqtt:!1,verifyPending:!1});return a.useEffect(()=>{if(!e)return;let n=`${t}.info.cloudConnected`,i=`${t}.info.mqttConnected`,a=`${t}.info.verificationPending`,o=!0,s=(e,t)=>{o&&r(e=>({...e,cloud:!!(t!=null&&t.val)}))},c=(e,t)=>{o&&r(e=>({...e,mqtt:!!(t!=null&&t.val)}))},l=(e,t)=>{o&&r(e=>({...e,verifyPending:!!(t!=null&&t.val)}))};return Promise.resolve(e.getState(n)).then(e=>s(n,e)).catch(()=>void 0),Promise.resolve(e.getState(i)).then(e=>c(i,e)).catch(()=>void 0),Promise.resolve(e.getState(a)).then(e=>l(a,e)).catch(()=>void 0),Promise.resolve(e.subscribeState(n,s)).catch(()=>void 0),Promise.resolve(e.subscribeState(i,c)).catch(()=>void 0),Promise.resolve(e.subscribeState(a,l)).catch(()=>void 0),()=>{o=!1,e.unsubscribeState(n,s),e.unsubscribeState(i,c),e.unsubscribeState(a,l)}},[e,t]),n}function D(e){switch(e){case`ok`:return`success`;case`verifyRequired`:case`codeSent`:return`info`;case`codeInvalid`:case`codeRejected`:case`needCredentials`:case`throttled`:case`loginWindowFull`:return`warning`;default:return`error`}}var O=new Set(w);function k(e){return e===`verifyRequired`||e===`codeSent`||e===`codeInvalid`||e===`codeRejected`}function A({on:e,testId:t}){return f(o,{component:`span`,"data-testid":t,"data-on":e?`true`:`false`,sx:{display:`inline-block`,width:12,height:12,borderRadius:`50%`,flexShrink:0,bgcolor:e?`success.main`:`action.disabled`}})}function j(e){let{socket:t,namespace:c,values:l,onChange:u}=e,{apiKey:d,email:_,password:v,code:x}=l,S=a.useMemo(()=>T(t,c),[t,c]),w=E(t,c),[j,M]=a.useState(``),[N,P]=a.useState(null),[F,I]=a.useState(!1),[L,R]=a.useState({apiKey:d,email:_,password:v,code:x});a.useEffect(()=>{R(e=>{let t={...e},n=!1;return e.apiKey!==d&&(t.apiKey=d,n=!0),e.email!==_&&(t.email=_,n=!0),e.password!==v&&(t.password=v,n=!0),e.code!==x&&(t.code=x,n=!0),n?t:e})},[d,_,v,x]);let z=(e,t,n)=>{R(e=>({...e,[t]:n})),u(e,n)};a.useEffect(()=>{w.verifyPending&&I(!0)},[w.verifyPending]);let B=(e,...t)=>b.t(e,...t),V=e=>{P({status:`loginFailed`,text:B(`gsw_conn_err`,e)})},H=(e,t)=>{let n=typeof t.reason==`string`?t.reason:``;return(e===`loginFailed`||e===`codeRejected`)&&n?B(`gsw_conn_st_${e}Reason`,n):e===`loginWindowFull`&&typeof t.retryAt==`number`&&Number.isFinite(t.retryAt)?B(`gsw_conn_st_loginWindowFull`,new Date(t.retryAt).toLocaleTimeString()):B(`gsw_conn_st_${e===`loginWindowFull`?`rateLimited`:e}`)},U=e=>{let t=e==null?void 0:e.status;if(typeof t!=`string`||!O.has(t)){V(typeof(e==null?void 0:e.error)==`string`&&e.error?e.error:b.t(`gsw_conn_st_loginFailed`));return}P({status:t,text:H(t,e)}),k(t)&&I(!0)},W=async()=>{M(`login`);try{U(await S.testLogin({email:L.email,password:L.password,code:L.code}))}catch(e){V(C(e))}finally{M(``)}},G=async()=>{M(`code`);try{U(await S.requestCode({email:L.email,password:L.password}))}catch(e){V(C(e))}finally{M(``)}},K=L.email.trim()!==``&&L.password.trim()!==``;return n(o,{sx:{maxWidth:640},children:[n(i,{direction:`row`,spacing:1.5,sx:{py:1,alignItems:`center`},children:[f(A,{on:!0,testId:`dot-lan`}),n(o,{children:[f(s,{variant:`subtitle2`,children:B(`gsw_conn_lan_title`)}),f(s,{variant:`body2`,color:`text.secondary`,children:B(`gsw_conn_lan_desc`)})]})]}),f(h,{}),n(i,{direction:`row`,spacing:1.5,sx:{py:1.5,alignItems:`flex-start`},children:[f(o,{sx:{pt:1},children:f(A,{on:w.cloud,testId:`dot-cloud`})}),n(o,{sx:{flexGrow:1},children:[f(s,{variant:`subtitle2`,children:B(`gsw_conn_cloud_title`)}),f(s,{variant:`body2`,color:`text.secondary`,sx:{mb:1},children:B(`gsw_conn_cloud_desc`)}),f(r,{fullWidth:!0,size:`small`,type:`password`,label:B(`gsw_conn_apikey_label`),value:L.apiKey,onChange:e=>z(`apiKey`,`apiKey`,e.target.value),slotProps:{htmlInput:{"data-testid":`conn-apikey`}},autoComplete:`off`})]})]}),f(h,{}),n(i,{direction:`row`,spacing:1.5,sx:{py:1.5,alignItems:`flex-start`},children:[f(o,{sx:{pt:1},children:f(A,{on:w.mqtt,testId:`dot-mqtt`})}),n(o,{sx:{flexGrow:1},children:[f(s,{variant:`subtitle2`,children:B(`gsw_conn_rt_title`)}),f(s,{variant:`body2`,color:`text.secondary`,sx:{mb:1},children:B(`gsw_conn_rt_desc`)}),n(i,{spacing:1,children:[f(r,{fullWidth:!0,size:`small`,label:B(`gsw_conn_email_label`),value:L.email,onChange:e=>z(`goveeEmail`,`email`,e.target.value),slotProps:{htmlInput:{"data-testid":`conn-email`}},autoComplete:`off`}),f(r,{fullWidth:!0,size:`small`,type:`password`,label:B(`gsw_conn_password_label`),value:L.password,onChange:e=>z(`goveePassword`,`password`,e.target.value),slotProps:{htmlInput:{"data-testid":`conn-password`}},autoComplete:`off`}),f(o,{children:f(p,{variant:`contained`,size:`small`,"data-testid":`conn-connect`,disabled:!K||j!==``,onClick:()=>void W(),startIcon:j===`login`?f(g,{size:16,color:`inherit`}):void 0,children:B(`gsw_conn_connect_btn`)})}),f(y,{in:F,unmountOnExit:!0,children:n(i,{spacing:1,sx:{mt:1,pl:1,borderLeft:`2px solid`,borderColor:`divider`},children:[f(s,{variant:`body2`,color:`text.secondary`,children:B(`gsw_conn_2fa_hint`)}),f(r,{fullWidth:!0,size:`small`,label:B(`gsw_conn_code_label`),value:L.code,onChange:e=>z(`mqttVerificationCode`,`code`,e.target.value),slotProps:{htmlInput:{maxLength:8}},autoComplete:`off`}),n(i,{direction:`row`,spacing:1,children:[f(p,{variant:`outlined`,size:`small`,disabled:!K||j!==``,onClick:()=>void G(),startIcon:j===`code`?f(g,{size:16,color:`inherit`}):void 0,children:B(`gsw_conn_request_btn`)}),f(p,{variant:`contained`,size:`small`,disabled:!K||L.code.trim()===``||j!==``,onClick:()=>void W(),startIcon:j===`login`?f(g,{size:16,color:`inherit`}):void 0,children:B(`gsw_conn_verify_btn`)})]})]})})]})]})]}),N&&f(m,{severity:D(N.status),sx:{mt:1},onClose:()=>P(null),children:N.text})]})}v();var M=class extends e{renderItem(t,n){let r=this.props.oContext,i=`${r.adapterName}.${r.instance}`,a=t=>{let n=e.getValue(this.props.data,t);return typeof n==`string`?n:``};return f(j,{socket:r.socket,namespace:i,values:{apiKey:a(`apiKey`),email:a(`goveeEmail`),password:a(`goveePassword`),code:a(`mqttVerificationCode`)},onChange:(e,t)=>void this.onChange(e,t)})}},N=class extends Error{},P=class extends Error{constructor(e,t=0){super(`instance unavailable: ${e}`),x(this,`reason`,void 0),x(this,`seconds`,void 0),this.reason=e,this.seconds=t,this.name=`InstanceUnavailableError`}},F=15e3,I=18e4,L=new Set([`timeout`,`disconnected`]);function R(e){return typeof e.fileName==`string`&&typeof e.content==`string`}async function z(e,t,n,r){let i=`system.adapter.${t}.alive`,a=!1,o,s=new Promise((e,t)=>{o=t}),c=(e,t)=>{if((t==null?void 0:t.val)===!0){a=!0;return}o(new P(a?`stopped`:`notRunning`))},l=setTimeout(()=>o(new P(`noAnswer`,Math.round(r/1e3))),r);try{var u;Promise.resolve((u=e.subscribeState)==null?void 0:u.call(e,i,c)).catch(()=>void 0)}catch{}try{let i=await Promise.race([e.sendTo(t,`diagnostics`,n),s]);if(typeof i==`string`&&L.has(i))throw new P(`noAnswer`,Math.round(r/1e3));return i}finally{var d;clearTimeout(l),(d=e.unsubscribeState)==null||d.call(e,i,c)}}function B(e,t,n={listMs:F,exportMs:I}){return{async listDevices(){let r;try{r=await z(e,t,{action:`list`},n.listMs)}catch(e){throw e instanceof P?e:new N(C(e))}let i=r==null?void 0:r.devices;if(!Array.isArray(i)){let e=r==null?void 0:r.error;throw new N(typeof e==`string`?e:``)}return i},async exportReport(r){let i=Date.now()+n.exportMs,a=()=>new P(`noAnswer`,Math.round(n.exportMs/1e3)),o=await z(e,t,{action:`start`,device:r},n.listMs),s=o==null?void 0:o.job;if(typeof s!=`string`){let e=o==null?void 0:o.error;return{error:typeof e==`string`?e:``}}for(;;){let r=Math.min(n.pollMs??2e3,i-Date.now());if(r<=0)throw a();await new Promise(e=>setTimeout(e,r));let o;try{o=await z(e,t,{action:`result`,job:s},n.listMs)}catch(e){if(e instanceof P&&e.reason===`noAnswer`)continue;throw e}if(o&&typeof o==`object`){if(`pending`in o)continue;if(`gone`in o)throw new P(`stopped`);if(R(o)||`error`in o)return o}return{error:``}}}}}var V={en:{diag_loadingDevices:`Loading devices…`,diag_listFailed:`The adapter did not answer with its device list. Is the instance running?`,diag_intro:`Creates a diagnostics report for the selected device — read only, nothing on the device changes.`,diag_contains:`The report contains:`,diag_containsWhat:`what the device can do and what it answers`,diag_containsDatapoints:`its datapoints`,diag_containsLog:`the adapter's recent log lines`,diag_after:`Reading takes up to a minute. Attach the file to a GitHub issue afterwards.`,diag_noDevices:`This instance runs no device yet.`,diag_device:`Device`,diag_notConnected:`not connected`,diag_offlineHint:`The device is not connected: the report contains what the adapter remembers about it and the log lines, but no live read.`,diag_export:`Create diagnostics report`,diag_reading:`Reading the device…`,diag_done:`Saved as %s.`,diag_openIssue:`Open a GitHub issue`,diag_exportFailed:`The report could not be created.`,diag_privacyTitle:`Privacy`,diag_privacyMarkers:`Addresses, serial numbers, network and room names are replaced by markers before the file leaves the adapter.`,diag_privacyMemory:`Nothing is written to disk — the report stays in memory only until your browser has it.`,diag_generating:`Generating the diagnostics report — the device is being read over every protocol it speaks. This takes up to a minute; the file is offered for download when it is done.`,diag_elapsed:`%s s`,diag_notRunning:`The instance is not running. Start it, then open this tab again.`,diag_stopped:`The instance stopped while the report was being made (a restart or a crash). Try again once it runs — the instance's log says what happened.`,diag_noAnswer:`The adapter did not answer within %s s. Check the instance's log, then try again.`},de:{diag_loadingDevices:`Geräte werden geladen…`,diag_listFailed:`Der Adapter hat keine Geräteliste geliefert. Läuft die Instanz?`,diag_intro:`Erstellt einen Diagnosebericht für das gewählte Gerät – nur lesend, am Gerät ändert sich nichts.`,diag_contains:`Der Bericht enthält:`,diag_containsWhat:`was das Gerät kann und was es antwortet`,diag_containsDatapoints:`seine Datenpunkte`,diag_containsLog:`die letzten Logzeilen des Adapters`,diag_after:`Das Auslesen dauert bis zu einer Minute. Die Datei danach an ein GitHub-Issue anhängen.`,diag_noDevices:`Diese Instanz betreibt noch kein Gerät.`,diag_device:`Gerät`,diag_notConnected:`nicht verbunden`,diag_offlineHint:`Das Gerät ist nicht verbunden: Der Bericht enthält, was der Adapter über das Gerät gespeichert hat, und die Logzeilen, aber kein aktuelles Auslesen.`,diag_export:`Diagnosebericht erstellen`,diag_reading:`Gerät wird ausgelesen…`,diag_done:`Gespeichert als %s.`,diag_openIssue:`GitHub-Issue öffnen`,diag_exportFailed:`Der Bericht konnte nicht erstellt werden.`,diag_privacyTitle:`Datenschutz`,diag_privacyMarkers:`Adressen, Seriennummern, Netzwerk- und Raumnamen werden durch Platzhalter ersetzt, bevor die Datei den Adapter verlässt.`,diag_privacyMemory:`Nichts wird auf die Festplatte geschrieben – der Bericht liegt nur im Speicher, bis dein Browser ihn hat.`,diag_generating:`Diagnosebericht wird erstellt – das Gerät wird über jedes Protokoll ausgelesen, das es spricht. Das dauert bis zu einer Minute; danach wird die Datei zum Herunterladen angeboten.`,diag_elapsed:`%s s`,diag_notRunning:`Die Instanz läuft nicht. Bitte starten und diesen Tab dann erneut öffnen.`,diag_stopped:`Die Instanz wurde beendet, während der Bericht entstand (Neustart oder Absturz). Erneut versuchen, sobald sie wieder läuft – das Log der Instanz zeigt, was passiert ist.`,diag_noAnswer:`Der Adapter hat nicht innerhalb von %s s geantwortet. Bitte das Log der Instanz prüfen und es dann erneut versuchen.`},ru:{diag_loadingDevices:`Загрузка устройств…`,diag_listFailed:`Адаптер не вернул список устройств. Запущен ли экземпляр?`,diag_intro:`Создаёт диагностический отчёт для выбранного устройства — только чтение, на устройстве ничего не меняется.`,diag_contains:`Отчёт содержит:`,diag_containsWhat:`что умеет устройство и что оно отвечает`,diag_containsDatapoints:`его точки данных`,diag_containsLog:`последние строки журнала адаптера`,diag_after:`Чтение занимает до минуты. Затем приложите файл к issue на GitHub.`,diag_noDevices:`Этот экземпляр пока не управляет ни одним устройством.`,diag_device:`Устройство`,diag_notConnected:`не подключено`,diag_offlineHint:`Устройство не подключено: отчёт содержит то, что адаптер о нём запомнил, и строки журнала, но без текущего считывания.`,diag_export:`Создать диагностический отчёт`,diag_reading:`Считывание устройства…`,diag_done:`Сохранено как %s.`,diag_openIssue:`Открыть issue на GitHub`,diag_exportFailed:`Не удалось создать отчёт.`,diag_privacyTitle:`Конфиденциальность`,diag_privacyMarkers:`Адреса, серийные номера, имена сетей и комнат заменяются метками до того, как файл покинет адаптер.`,diag_privacyMemory:`На диск ничего не записывается — отчёт хранится только в памяти, пока его не получит браузер.`,diag_generating:`Создаётся диагностический отчёт: устройство считывается по всем поддерживаемым протоколам. Это занимает до минуты; затем файл будет предложен для загрузки.`,diag_elapsed:`%s с`,diag_notRunning:`Экземпляр не запущен. Запустите его и снова откройте эту вкладку.`,diag_stopped:`Экземпляр остановился во время создания отчёта (перезапуск или сбой). Повторите попытку, когда он снова заработает — журнал экземпляра покажет, что произошло.`,diag_noAnswer:`Адаптер не ответил в течение %s с. Проверьте журнал экземпляра и повторите попытку.`},pt:{diag_loadingDevices:`A carregar dispositivos…`,diag_listFailed:`O adaptador não respondeu com a lista de dispositivos. A instância está em execução?`,diag_intro:`Cria um relatório de diagnóstico do dispositivo selecionado — só leitura, nada muda no dispositivo.`,diag_contains:`O relatório contém:`,diag_containsWhat:`o que o dispositivo consegue fazer e o que responde`,diag_containsDatapoints:`os seus pontos de dados`,diag_containsLog:`as últimas linhas de registo do adaptador`,diag_after:`A leitura demora até um minuto. Depois, anexa o ficheiro a um issue no GitHub.`,diag_noDevices:`Esta instância ainda não gere nenhum dispositivo.`,diag_device:`Dispositivo`,diag_notConnected:`não ligado`,diag_offlineHint:`O dispositivo não está ligado: o relatório contém o que o adaptador guardou sobre ele e as linhas de registo, mas nenhuma leitura atual.`,diag_export:`Criar relatório de diagnóstico`,diag_reading:`A ler o dispositivo…`,diag_done:`Guardado como %s.`,diag_openIssue:`Abrir um issue no GitHub`,diag_exportFailed:`Não foi possível criar o relatório.`,diag_privacyTitle:`Privacidade`,diag_privacyMarkers:`Endereços, números de série, nomes de rede e de divisões são substituídos por marcadores antes de o ficheiro sair do adaptador.`,diag_privacyMemory:`Nada é escrito no disco — o relatório fica só em memória até o navegador o receber.`,diag_generating:`A gerar o relatório de diagnóstico — o dispositivo está a ser lido por todos os protocolos que fala. Demora até um minuto; depois o ficheiro é oferecido para transferência.`,diag_elapsed:`%s s`,diag_notRunning:`A instância não está em execução. Inicie-a e depois abra este separador novamente.`,diag_stopped:`A instância parou enquanto o relatório estava a ser criado (reinício ou falha). Tente novamente quando estiver em execução — o registo da instância mostra o que aconteceu.`,diag_noAnswer:`O adaptador não respondeu em %s s. Verifique o registo da instância e tente novamente.`},nl:{diag_loadingDevices:`Apparaten laden…`,diag_listFailed:`De adapter gaf geen apparaatlijst terug. Draait de instantie?`,diag_intro:`Maakt een diagnoserapport voor het gekozen apparaat — alleen lezen, aan het apparaat verandert niets.`,diag_contains:`Het rapport bevat:`,diag_containsWhat:`wat het apparaat kan en wat het antwoordt`,diag_containsDatapoints:`zijn datapunten`,diag_containsLog:`de laatste logregels van de adapter`,diag_after:`Het uitlezen duurt tot een minuut. Voeg het bestand daarna toe aan een GitHub-issue.`,diag_noDevices:`Deze instantie bestuurt nog geen apparaat.`,diag_device:`Apparaat`,diag_notConnected:`niet verbonden`,diag_offlineHint:`Het apparaat is niet verbonden: het rapport bevat wat de adapter over het apparaat heeft onthouden en de logregels, maar geen actuele uitlezing.`,diag_export:`Diagnoserapport maken`,diag_reading:`Apparaat wordt uitgelezen…`,diag_done:`Opgeslagen als %s.`,diag_openIssue:`GitHub-issue openen`,diag_exportFailed:`Het rapport kon niet worden gemaakt.`,diag_privacyTitle:`Privacy`,diag_privacyMarkers:`Adressen, serienummers, netwerk- en kamernamen worden door markeringen vervangen voordat het bestand de adapter verlaat.`,diag_privacyMemory:`Er wordt niets naar de schijf geschreven — het rapport staat alleen in het geheugen tot je browser het heeft.`,diag_generating:`Diagnoserapport wordt gemaakt – het apparaat wordt uitgelezen via elk protocol dat het spreekt. Dit duurt tot een minuut; daarna wordt het bestand aangeboden om te downloaden.`,diag_elapsed:`%s s`,diag_notRunning:`De instantie draait niet. Start deze en open dit tabblad daarna opnieuw.`,diag_stopped:`De instantie is gestopt terwijl het rapport werd gemaakt (herstart of crash). Probeer het opnieuw zodra ze weer draait — het logboek van de instantie toont wat er gebeurde.`,diag_noAnswer:`De adapter heeft niet binnen %s s geantwoord. Controleer het logboek van de instantie en probeer het opnieuw.`},fr:{diag_loadingDevices:`Chargement des appareils…`,diag_listFailed:`L'adaptateur n'a pas renvoyé sa liste d'appareils. L'instance est-elle en cours d'exécution ?`,diag_intro:`Crée un rapport de diagnostic pour l'appareil sélectionné — en lecture seule, rien ne change sur l'appareil.`,diag_contains:`Le rapport contient :`,diag_containsWhat:`ce que l'appareil sait faire et ce qu'il répond`,diag_containsDatapoints:`ses points de données`,diag_containsLog:`les dernières lignes du journal de l'adaptateur`,diag_after:`La lecture dure jusqu'à une minute. Joins ensuite le fichier à un ticket GitHub.`,diag_noDevices:`Cette instance ne gère encore aucun appareil.`,diag_device:`Appareil`,diag_notConnected:`non connecté`,diag_offlineHint:`L'appareil n'est pas connecté : le rapport contient ce que l'adaptateur a retenu à son sujet et les lignes du journal, mais aucune lecture en direct.`,diag_export:`Créer un rapport de diagnostic`,diag_reading:`Lecture de l'appareil…`,diag_done:`Enregistré sous %s.`,diag_openIssue:`Ouvrir un ticket GitHub`,diag_exportFailed:`Le rapport n'a pas pu être créé.`,diag_privacyTitle:`Confidentialité`,diag_privacyMarkers:`Les adresses, numéros de série, noms de réseau et de pièces sont remplacés par des marqueurs avant que le fichier ne quitte l'adaptateur.`,diag_privacyMemory:`Rien n'est écrit sur le disque — le rapport reste en mémoire seulement jusqu'à ce que ton navigateur l'ait reçu.`,diag_generating:`Création du rapport de diagnostic — l'appareil est lu par chaque protocole qu'il parle. Cela prend jusqu'à une minute ; le fichier est ensuite proposé au téléchargement.`,diag_elapsed:`%s s`,diag_notRunning:`L'instance n'est pas en cours d'exécution. Démarrez-la, puis rouvrez cet onglet.`,diag_stopped:`L'instance s'est arrêtée pendant la création du rapport (redémarrage ou plantage). Réessayez lorsqu'elle tourne à nouveau — le journal de l'instance indique ce qui s'est passé.`,diag_noAnswer:`L'adaptateur n'a pas répondu en %s s. Vérifiez le journal de l'instance, puis réessayez.`},it:{diag_loadingDevices:`Caricamento dei dispositivi…`,diag_listFailed:`L'adattatore non ha restituito l'elenco dei dispositivi. L'istanza è in esecuzione?`,diag_intro:`Crea un rapporto di diagnostica per il dispositivo selezionato: solo lettura, sul dispositivo non cambia nulla.`,diag_contains:`Il rapporto contiene:`,diag_containsWhat:`cosa sa fare il dispositivo e cosa risponde`,diag_containsDatapoints:`i suoi punti dati`,diag_containsLog:`le ultime righe di log dell'adattatore`,diag_after:`La lettura richiede fino a un minuto. Poi allega il file a una issue su GitHub.`,diag_noDevices:`Questa istanza non gestisce ancora alcun dispositivo.`,diag_device:`Dispositivo`,diag_notConnected:`non connesso`,diag_offlineHint:`Il dispositivo non è connesso: il rapporto contiene ciò che l'adattatore ha memorizzato su di esso e le righe di log, ma nessuna lettura in tempo reale.`,diag_export:`Crea rapporto di diagnostica`,diag_reading:`Lettura del dispositivo…`,diag_done:`Salvato come %s.`,diag_openIssue:`Apri una issue su GitHub`,diag_exportFailed:`Impossibile creare il rapporto.`,diag_privacyTitle:`Privacy`,diag_privacyMarkers:`Indirizzi, numeri di serie, nomi di rete e delle stanze vengono sostituiti da segnaposto prima che il file lasci l'adattatore.`,diag_privacyMemory:`Non viene scritto nulla su disco: il rapporto resta in memoria solo finché il browser non lo riceve.`,diag_generating:`Creazione del rapporto di diagnostica — il dispositivo viene letto tramite ogni protocollo che supporta. Richiede fino a un minuto; poi il file viene offerto per il download.`,diag_elapsed:`%s s`,diag_notRunning:`L'istanza non è in esecuzione. Avviala, poi riapri questa scheda.`,diag_stopped:`L'istanza si è fermata mentre il rapporto veniva creato (riavvio o arresto anomalo). Riprova quando è di nuovo in esecuzione: il log dell'istanza indica cosa è successo.`,diag_noAnswer:`L'adattatore non ha risposto entro %s s. Controlla il log dell'istanza, poi riprova.`},es:{diag_loadingDevices:`Cargando dispositivos…`,diag_listFailed:`El adaptador no respondió con su lista de dispositivos. ¿Está en marcha la instancia?`,diag_intro:`Crea un informe de diagnóstico del dispositivo seleccionado: solo lectura, en el dispositivo no cambia nada.`,diag_contains:`El informe contiene:`,diag_containsWhat:`lo que el dispositivo puede hacer y lo que responde`,diag_containsDatapoints:`sus puntos de datos`,diag_containsLog:`las últimas líneas del registro del adaptador`,diag_after:`La lectura tarda hasta un minuto. Después, adjunta el archivo a un issue de GitHub.`,diag_noDevices:`Esta instancia aún no gestiona ningún dispositivo.`,diag_device:`Dispositivo`,diag_notConnected:`no conectado`,diag_offlineHint:`El dispositivo no está conectado: el informe contiene lo que el adaptador recuerda de él y las líneas de registro, pero ninguna lectura en vivo.`,diag_export:`Crear informe de diagnóstico`,diag_reading:`Leyendo el dispositivo…`,diag_done:`Guardado como %s.`,diag_openIssue:`Abrir un issue en GitHub`,diag_exportFailed:`No se pudo crear el informe.`,diag_privacyTitle:`Privacidad`,diag_privacyMarkers:`Las direcciones, números de serie y nombres de red y de habitaciones se sustituyen por marcadores antes de que el archivo salga del adaptador.`,diag_privacyMemory:`No se escribe nada en el disco: el informe solo está en memoria hasta que tu navegador lo tiene.`,diag_generating:`Generando el informe de diagnóstico: el dispositivo se está leyendo por cada protocolo que habla. Tarda hasta un minuto; después se ofrece el archivo para descargar.`,diag_elapsed:`%s s`,diag_notRunning:`La instancia no se está ejecutando. Iníciela y luego vuelva a abrir esta pestaña.`,diag_stopped:`La instancia se detuvo mientras se creaba el informe (reinicio o fallo). Inténtelo de nuevo cuando vuelva a ejecutarse: el registro de la instancia muestra lo que ocurrió.`,diag_noAnswer:`El adaptador no respondió en %s s. Revise el registro de la instancia y vuelva a intentarlo.`},pl:{diag_loadingDevices:`Wczytywanie urządzeń…`,diag_listFailed:`Adapter nie zwrócił listy urządzeń. Czy instancja działa?`,diag_intro:`Tworzy raport diagnostyczny wybranego urządzenia — tylko odczyt, w urządzeniu nic się nie zmienia.`,diag_contains:`Raport zawiera:`,diag_containsWhat:`co urządzenie potrafi i co odpowiada`,diag_containsDatapoints:`jego punkty danych`,diag_containsLog:`ostatnie wiersze dziennika adaptera`,diag_after:`Odczyt trwa do minuty. Następnie dołącz plik do zgłoszenia na GitHubie.`,diag_noDevices:`Ta instancja nie obsługuje jeszcze żadnego urządzenia.`,diag_device:`Urządzenie`,diag_notConnected:`niepołączone`,diag_offlineHint:`Urządzenie nie jest połączone: raport zawiera to, co adapter o nim zapamiętał, oraz wiersze dziennika, ale bez bieżącego odczytu.`,diag_export:`Utwórz raport diagnostyczny`,diag_reading:`Odczyt urządzenia…`,diag_done:`Zapisano jako %s.`,diag_openIssue:`Otwórz zgłoszenie na GitHubie`,diag_exportFailed:`Nie udało się utworzyć raportu.`,diag_privacyTitle:`Prywatność`,diag_privacyMarkers:`Adresy, numery seryjne, nazwy sieci i pomieszczeń są zastępowane znacznikami, zanim plik opuści adapter.`,diag_privacyMemory:`Nic nie jest zapisywane na dysku — raport jest tylko w pamięci, dopóki nie odbierze go przeglądarka.`,diag_generating:`Tworzenie raportu diagnostycznego – urządzenie jest odczytywane przez każdy obsługiwany protokół. Trwa to do minuty; potem plik zostanie udostępniony do pobrania.`,diag_elapsed:`%s s`,diag_notRunning:`Instancja nie działa. Uruchom ją, a następnie ponownie otwórz tę kartę.`,diag_stopped:`Instancja zatrzymała się podczas tworzenia raportu (restart lub awaria). Spróbuj ponownie, gdy znów będzie działać — dziennik instancji pokazuje, co się stało.`,diag_noAnswer:`Adapter nie odpowiedział w ciągu %s s. Sprawdź dziennik instancji i spróbuj ponownie.`},uk:{diag_loadingDevices:`Завантаження пристроїв…`,diag_listFailed:`Адаптер не повернув список пристроїв. Чи запущено екземпляр?`,diag_intro:`Створює діагностичний звіт для вибраного пристрою — лише читання, на пристрої нічого не змінюється.`,diag_contains:`Звіт містить:`,diag_containsWhat:`що вміє пристрій і що він відповідає`,diag_containsDatapoints:`його точки даних`,diag_containsLog:`останні рядки журналу адаптера`,diag_after:`Читання триває до хвилини. Потім додайте файл до issue на GitHub.`,diag_noDevices:`Цей екземпляр ще не керує жодним пристроєм.`,diag_device:`Пристрій`,diag_notConnected:`не підключено`,diag_offlineHint:`Пристрій не підключено: звіт містить те, що адаптер про нього запам’ятав, і рядки журналу, але без поточного зчитування.`,diag_export:`Створити діагностичний звіт`,diag_reading:`Зчитування пристрою…`,diag_done:`Збережено як %s.`,diag_openIssue:`Відкрити issue на GitHub`,diag_exportFailed:`Не вдалося створити звіт.`,diag_privacyTitle:`Конфіденційність`,diag_privacyMarkers:`Адреси, серійні номери, назви мереж і кімнат замінюються мітками, перш ніж файл покине адаптер.`,diag_privacyMemory:`На диск нічого не записується — звіт зберігається лише в пам'яті, доки його не отримає браузер.`,diag_generating:`Створюється діагностичний звіт: пристрій зчитується через кожен протокол, який він підтримує. Це триває до хвилини; потім файл буде запропоновано для завантаження.`,diag_elapsed:`%s с`,diag_notRunning:`Екземпляр не запущено. Запустіть його, а потім знову відкрийте цю вкладку.`,diag_stopped:`Екземпляр зупинився під час створення звіту (перезапуск або збій). Спробуйте ще раз, коли він знову працюватиме — журнал екземпляра покаже, що сталося.`,diag_noAnswer:`Адаптер не відповів протягом %s с. Перевірте журнал екземпляра та спробуйте ще раз.`},"zh-cn":{diag_loadingDevices:`正在加载设备…`,diag_listFailed:`适配器未返回设备列表。实例是否正在运行?`,diag_intro:`为所选设备生成诊断报告——只读,设备上不会有任何改动。`,diag_contains:`报告包含:`,diag_containsWhat:`设备能做什么以及它的应答`,diag_containsDatapoints:`它的数据点`,diag_containsLog:`适配器最近的日志行`,diag_after:`读取最多需要一分钟。之后请将文件附加到 GitHub issue。`,diag_noDevices:`此实例尚未管理任何设备。`,diag_device:`设备`,diag_notConnected:`未连接`,diag_offlineHint:`设备未连接:报告包含适配器记住的设备信息和日志行,但没有实时读取。`,diag_export:`创建诊断报告`,diag_reading:`正在读取设备…`,diag_done:`已保存为 %s。`,diag_openIssue:`创建 GitHub issue`,diag_exportFailed:`无法创建报告。`,diag_privacyTitle:`隐私`,diag_privacyMarkers:`在文件离开适配器之前,地址、序列号、网络名称和房间名称都会被替换为标记。`,diag_privacyMemory:`不会向磁盘写入任何内容——报告只保存在内存中,直到浏览器取走为止。`,diag_generating:`正在生成诊断报告——正在通过设备支持的每种协议读取它。最多需要一分钟;完成后将提供文件下载。`,diag_elapsed:`%s 秒`,diag_notRunning:`实例未运行。请启动实例,然后重新打开此选项卡。`,diag_stopped:`生成报告期间实例已停止(重启或崩溃)。请在实例重新运行后重试——实例日志会说明发生了什么。`,diag_noAnswer:`适配器在 %s 秒内没有响应。请检查实例日志,然后重试。`}},H=!1;function U(e){if(!H){H=!0;for(let[t,n]of Object.entries(V))e({...n},t)}}function W(e,t){let n=e.split(`.`)[0],r=new Set(t);try{let e=window._localStorage??window.localStorage,t=new Set,i=`App.${n}`;if(r.has(e.getItem(i)??``)&&t.add(i),typeof e.length==`number`&&typeof e.key==`function`)for(let i=0;i<e.length;i++){let a=e.key(i);a!=null&&a.endsWith(`.${n}`)&&r.has(e.getItem(a)??``)&&t.add(a)}for(let n of t)e.removeItem(n)}catch{}}v();function G(e){return`${e.replace(/\/+$/,``)}/issues/new?template=device-support.yml`}function K(e,t){return e instanceof P?e.reason===`notRunning`?b.t(`diag_notRunning`):e.reason===`stopped`?b.t(`diag_stopped`):b.t(`diag_noAnswer`,String(e.seconds)):e instanceof Error&&e.message?C(e):t}function q(e,t){let n=URL.createObjectURL(new Blob([t],{type:`application/json`})),r=document.createElement(`a`);r.href=n,r.download=e,document.body.appendChild(r),r.click(),r.remove(),setTimeout(()=>URL.revokeObjectURL(n),1e3)}function J({socket:e,namespace:r,repository:h,tabIds:v,timeouts:y}){U((e,t)=>b.extendTranslations(e,t));let x=a.useMemo(()=>B(e,r,y),[e,r,y]),[C,w]=a.useState({status:`loading`}),[T,E]=a.useState(``),[D,O]=a.useState(!1),[k,A]=a.useState(``),[j,M]=a.useState(``),[N,P]=a.useState(0);a.useEffect(()=>{if(!D)return;P(0);let e=Date.now(),t=setInterval(()=>P(Math.floor((Date.now()-e)/1e3)),1e3);return()=>clearInterval(t)},[D]),a.useEffect(()=>(W(r,v),()=>W(r,v)),[r,v]),a.useEffect(()=>{let e=!0;return x.listDevices().then(t=>{e&&(w({status:`ready`,devices:t}),t.length===1&&E(t[0].value))}).catch(t=>{e&&w({status:`failed`,message:K(t,b.t(`diag_listFailed`))})}),()=>{e=!1}},[x]);let F=a.useCallback(()=>{O(!0),A(``),M(``),x.exportReport(T).then(e=>{R(e)?(q(e.fileName,e.content),M(e.fileName)):A(e.error||b.t(`diag_exportFailed`))}).catch(e=>A(K(e,b.t(`diag_exportFailed`)))).finally(()=>O(!1))},[x,T]);if(C.status===`loading`)return f(o,{sx:{p:2},children:n(i,{direction:`row`,spacing:2,sx:{alignItems:`center`},children:[f(g,{size:24}),f(s,{variant:`body2`,children:b.t(`diag_loadingDevices`)})]})});if(C.status===`failed`)return f(o,{sx:{p:2},children:f(m,{severity:`error`,"data-testid":`diag-list-failed`,children:C.message})});let I=C.devices,L=I.find(e=>e.value===T);return f(o,{sx:{p:2,maxWidth:720},children:n(i,{spacing:2,children:[n(o,{"data-testid":`diag-intro`,children:[f(s,{variant:`body2`,children:b.t(`diag_intro`)}),f(s,{variant:`body2`,sx:{mt:1},children:b.t(`diag_contains`)}),f(o,{component:`ul`,sx:{m:0,pl:3},children:[`diag_containsWhat`,`diag_containsDatapoints`,`diag_containsLog`].map(e=>f(s,{component:`li`,variant:`body2`,children:b.t(e)},e))}),f(s,{variant:`body2`,sx:{mt:1},children:b.t(`diag_after`)})]}),I.length===0?f(m,{severity:`info`,"data-testid":`diag-no-devices`,children:b.t(`diag_noDevices`)}):n(d,{children:[n(_,{fullWidth:!0,children:[f(S,{id:`diag-device`,children:b.t(`diag_device`)}),f(l,{"data-testid":`diag-device-select`,labelId:`diag-device`,label:b.t(`diag_device`),value:T,onChange:e=>E(String(e.target.value)),children:I.map(e=>f(c,{value:e.value,children:e.connected?e.label:`${e.label} — ${b.t(`diag_notConnected`)}`},e.value))})]}),L&&!L.connected?f(m,{severity:`warning`,children:b.t(`diag_offlineHint`)}):null,f(o,{children:f(p,{"data-testid":`diag-export`,variant:`contained`,disabled:!T||D,onClick:F,startIcon:D?f(g,{size:16}):void 0,children:D?b.t(`diag_reading`):b.t(`diag_export`)})})]}),D?n(m,{severity:`info`,"data-testid":`diag-generating`,children:[f(s,{variant:`body2`,children:b.t(`diag_generating`)}),f(u,{sx:{my:1}}),f(s,{variant:`caption`,color:`text.secondary`,"data-testid":`diag-elapsed`,children:b.t(`diag_elapsed`,String(N))})]}):null,j?n(m,{severity:`success`,"data-testid":`diag-done`,children:[b.t(`diag_done`,j),` `,f(t,{href:G(h),target:`_blank`,rel:`noreferrer`,children:b.t(`diag_openIssue`)})]}):null,k?f(m,{severity:`error`,"data-testid":`diag-error`,children:k}):null,n(m,{severity:`info`,variant:`outlined`,"data-testid":`diag-privacy`,children:[f(s,{variant:`body2`,sx:{fontWeight:500},children:b.t(`diag_privacyTitle`)}),f(o,{component:`ul`,sx:{m:0,pl:3},children:[`diag_privacyMarkers`,`diag_privacyMemory`].map(e=>f(s,{component:`li`,variant:`body2`,children:b.t(e)},e))})]})]})})}var Y=class extends Error{};function X(e,t){return{async listDevices(){let n;try{n=await e.sendTo(t,`segmentWizard`,{action:`list`})}catch(e){throw new Y(C(e))}let r=n==null?void 0:n.devices;if(!Array.isArray(r))throw new Y(`The adapter did not answer with a device list`);return r}}}function Z(e){return e.filter(e=>e.online&&e.segments>0)}v();var ee=4e3;function te(e,t){let n=a.useMemo(()=>X(e,t),[e,t]),[r,i]=a.useState({status:`loading`,slow:!1});return a.useEffect(()=>{let e=!0;i({status:`loading`,slow:!1});let t=setTimeout(()=>{i(e=>e.status===`loading`?{status:`loading`,slow:!0}:e)},ee);return n.listDevices().then(t=>{e&&i({status:`ready`,devices:t})}).catch(t=>{e&&i({status:`failed`,message:t instanceof Y&&t.message?C(t):b.t(`gsw_listFailed`)})}),()=>{e=!1,clearTimeout(t)}},[n]),r}function ne({state:e}){return e.status===`loading`?f(o,{sx:{p:2},children:n(i,{direction:`row`,spacing:2,sx:{alignItems:`center`},children:[f(g,{size:24}),n(o,{children:[f(s,{variant:`body2`,children:b.t(`gsw_loadingDevices`)}),e.slow?f(s,{variant:`caption`,color:`text.secondary`,"data-testid":`list-slow-hint`,children:b.t(`gsw_loadingDevicesSlow`)}):null]})]})}):e.status===`failed`?f(o,{sx:{p:2},children:f(m,{severity:`error`,"data-testid":`list-failed`,children:e.message})}):null}v();var re={confirmed:{bgcolor:`success.main`,color:`success.contrastText`},flashing:{bgcolor:`warning.light`,color:`#000`,boxShadow:3},gap:{bgcolor:`error.main`,color:`error.contrastText`},open:{bgcolor:`action.disabledBackground`,color:`text.secondary`}};function ie(e,t,n,r){return n===e?`flashing`:t.has(e)?`confirmed`:r.has(e)?`gap`:`open`}function Q(e){let{total:t,confirmed:n,flashing:r,gaps:i,editable:a,onToggle:s}=e,c=new Set(n),l=new Set(i);return f(o,{sx:{display:`flex`,flexWrap:`wrap`,gap:.5},children:Array.from({length:Math.max(0,t)},(e,t)=>{let n=ie(t,c,r,l);return f(o,{"data-testid":`seg-cell-${t}`,className:`seg-cell ${n}`,onClick:a?()=>s==null?void 0:s(t):void 0,sx:{width:34,height:34,display:`flex`,alignItems:`center`,justifyContent:`center`,borderRadius:1,fontSize:12,userSelect:`none`,cursor:a?`pointer`:`default`,...re[n]},children:t},t)})})}function ae(e,t){let n=``,r=(n,r,i)=>{let a={action:n,device:r};return i&&(a.indices=i),e.sendTo(t,`segmentWizard`,a)};return{start(e){return n=e,r(`start`,e)},yes:()=>r(`yes`,n),no:()=>r(`no`,n),abort:()=>r(`abort`,n),apply:(e,t)=>r(`apply`,e,t)}}v();function $(e,t){let n=new Set(t),r=[];for(let t=0;t<e;t++)n.has(t)||r.push(t);return r}function oe(e){let t=a.useMemo(()=>ae(e.socket,e.namespace),[e.socket,e.namespace]),r=te(e.socket,e.namespace),u=a.useMemo(()=>r.status===`ready`?Z(r.devices):[],[r]),[d,h]=a.useState(`select`),[g,v]=a.useState(``),[y,x]=a.useState(null),[w,T]=a.useState(0),[E,D]=a.useState([]),[O,k]=a.useState(0),[A,j]=a.useState(``),M=a.useRef(!1);a.useEffect(()=>{v(u.length?u[0].value:``)},[u]),a.useEffect(()=>()=>{M.current&&(M.current=!1,Promise.resolve().then(()=>t.abort()).catch(()=>void 0))},[t]);let N=()=>{x(null),h(`select`)},P=e=>e.error?(M.current=!1,j(e.error),N(),!0):e.aborted?(M.current=!1,j(``),N(),!0):e.applied||e.done?(M.current=!1,k(e.segmentCount??0),x(null),h(`success`),!0):(j(``),e.snapshot&&x(e.snapshot),!1),F=e=>{M.current=!1,j(C(e)),N()},I=async()=>{g&&(j(``),P(await t.start(g))||(M.current=!0,h(`measure`)))},L=async()=>{try{await I()}catch(e){F(e)}},R=async e=>{try{P(await(e?t.yes():t.no()))}catch(e){F(e)}},z=()=>{let e=y;if(!e||e.currentIndex<1)return;let t=e.currentIndex;T(t),D(e.confirmed.filter(e=>e<t).sort((e,t)=>e-t)),h(`review`)},B=e=>{D(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e].sort((e,t)=>e-t))},V=async()=>{if(E.length)try{P(await t.apply(g,E))}catch(e){F(e)}},H=async()=>{try{await t.abort(),M.current=!1,await I()}catch(e){F(e)}},U=async()=>{try{await t.abort(),M.current=!1,N()}catch(e){F(e)}},W=()=>{j(``),h(`select`)},G=A?f(m,{severity:`error`,"data-testid":`wiz-error`,sx:{mb:2},children:b.t(`gsw_error`,A)}):null;if(r.status!==`ready`)return f(ne,{state:r});if(d===`select`)return n(o,{sx:{maxWidth:520},children:[G,u.length===0?f(m,{severity:`info`,"data-testid":`wiz-no-devices`,children:b.t(`gsw_noDevices`)}):n(i,{spacing:2,children:[n(_,{fullWidth:!0,children:[f(S,{children:b.t(`gsw_deviceLabel`)}),f(l,{"data-testid":`wiz-device-select`,value:g,label:b.t(`gsw_deviceLabel`),onChange:e=>v(e.target.value),children:u.map(e=>f(c,{value:e.value,children:b.t(`gsw_deviceOption`,e.label,String(e.segments))},e.value))})]}),f(o,{children:f(p,{variant:`contained`,"data-testid":`wiz-start`,disabled:!g,onClick:()=>void L(),children:b.t(`gsw_start`)})})]})]});if(d===`measure`&&y){let e=y.currentIndex;return n(o,{sx:{maxWidth:520},children:[f(s,{variant:`h6`,sx:{mb:1},children:b.t(`gsw_measureHint`)}),f(Q,{total:e+1,confirmed:y.confirmed,flashing:e,gaps:$(e,y.confirmed),editable:!1}),f(s,{sx:{my:2},children:b.t(`gsw_question`,e)}),n(i,{direction:`row`,spacing:1,sx:{flexWrap:`wrap`},useFlexGap:!0,children:[f(p,{variant:`contained`,color:`success`,"data-testid":`wiz-lit`,onClick:()=>void R(!0),children:b.t(`gsw_lit`)}),f(p,{variant:`outlined`,"data-testid":`wiz-dark`,onClick:()=>void R(!1),children:b.t(`gsw_dark`)}),f(p,{variant:`contained`,"data-testid":`wiz-finish`,disabled:e<1,onClick:z,children:b.t(`gsw_finish`)}),f(p,{variant:`text`,color:`secondary`,"data-testid":`wiz-cancel`,onClick:()=>void U(),children:b.t(`gsw_cancel`)})]})]})}if(d===`review`){let e=E.length?Math.max(...E)+1:0,t=e-E.length,r=t>0?b.t(`gsw_resultGaps`,e,t):b.t(`gsw_resultNoGaps`,e);return n(o,{sx:{maxWidth:520},children:[f(s,{variant:`h6`,sx:{mb:1},children:r}),f(s,{variant:`body2`,sx:{mb:1,opacity:.8},children:b.t(`gsw_reviewHint`)}),f(Q,{total:w,confirmed:E,flashing:null,gaps:$(w,E),editable:!0,onToggle:B}),n(i,{direction:`row`,spacing:1,sx:{mt:2,flexWrap:`wrap`},useFlexGap:!0,children:[f(p,{variant:`contained`,"data-testid":`wiz-apply`,disabled:!E.length,onClick:()=>void V(),children:b.t(`gsw_apply`)}),f(p,{variant:`outlined`,"data-testid":`wiz-remeasure`,onClick:()=>void H(),children:b.t(`gsw_remeasure`)}),f(p,{variant:`text`,color:`secondary`,"data-testid":`wiz-cancel`,onClick:()=>void U(),children:b.t(`gsw_cancel`)})]})]})}return n(o,{sx:{maxWidth:520},"data-testid":`wiz-success`,children:[f(m,{severity:`success`,sx:{mb:2},children:b.t(`gsw_applied`,O)}),f(p,{variant:`contained`,"data-testid":`wiz-close`,onClick:W,children:b.t(`gsw_close`)})]})}v();function se({socket:e,namespace:t}){let[r,c]=a.useState(`wizard`);return a.useEffect(()=>(W(t,[`_main`,`_expert`]),()=>W(t,[`_main`,`_expert`])),[t]),f(o,{sx:{p:2},children:n(i,{spacing:2,children:[f(s,{variant:`body2`,children:b.t(`gsw_expertIntro`)}),n(i,{direction:`row`,spacing:1,sx:{flexWrap:`wrap`},children:[f(p,{"data-testid":`expert-tool-wizard`,variant:r===`wizard`?`contained`:`outlined`,onClick:()=>c(`wizard`),children:b.t(`gsw_expertWizard`)}),f(p,{"data-testid":`expert-tool-diagnostics`,variant:r===`diagnostics`?`contained`:`outlined`,onClick:()=>c(`diagnostics`),children:b.t(`gsw_expertDiagnostics`)})]}),r===`wizard`?f(oe,{socket:e,namespace:t}):f(J,{socket:e,namespace:t,repository:`https://github.com/krobipd/ioBroker.govee-smart`,tabIds:[`_main`,`_expert`]})]})})}v();var ce={ConnectionConfig:M,ExpertConfig:class extends e{renderItem(e,t){let n=this.props.oContext,r=`${n.adapterName}.${n.instance}`;return f(se,{socket:n.socket,namespace:r})}}};export{ce as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./vite-preload-helper-CaC3yEL3.js";var t={react:async()=>await e(()=>import(`./_virtual_mf___mfe_internal__ConfigCustomGoveeSegmentSet__mf_owner__1__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-
|
|
1
|
+
import{t as e}from"./vite-preload-helper-CaC3yEL3.js";var t={react:async()=>await e(()=>import(`./_virtual_mf___mfe_internal__ConfigCustomGoveeSegmentSet__mf_owner__1__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-DaF1Zf1l.js`).then(e=>(e.mo(),e.po)),[],import.meta.url),"react/jsx-runtime":async()=>await e(()=>import(`./_virtual_mf___mfe_internal__ConfigCustomGoveeSegmentSet__mf_owner__1__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-DaF1Zf1l.js`).then(e=>e.Ka),[],import.meta.url),"react-dom":async()=>await e(()=>import(`./_virtual_mf___mfe_internal__ConfigCustomGoveeSegmentSet__mf_owner__1__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-DaF1Zf1l.js`).then(e=>e.aa),[],import.meta.url),"@mui/material":async()=>await e(()=>import(`./_virtual_mf___mfe_internal__ConfigCustomGoveeSegmentSet__mf_owner__1__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-DaF1Zf1l.js`).then(e=>e.Li),[],import.meta.url),"@mui/icons-material":async()=>await e(()=>import(`./_virtual_mf___mfe_internal__ConfigCustomGoveeSegmentSet__mf_owner__1__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-DaF1Zf1l.js`).then(e=>e.Ar),[],import.meta.url),"@iobroker/gui-components":async()=>await e(()=>import(`./_virtual_mf___mfe_internal__ConfigCustomGoveeSegmentSet__mf_owner__1__prebuild___mf_0_iobroker_mf_1_gui_mf_2_components__prebuild__-BvTjMUUw.js`),[],import.meta.url),"@iobroker/json-config":async()=>await e(()=>import(`./_virtual_mf___mfe_internal__ConfigCustomGoveeSegmentSet__mf_owner__1__loadShare___mf_0_iobroker_mf_1_json_mf_2_config__loadShare__.js-CnzIXUif.js`).then(e=>e.n),[],import.meta.url)},n={react:{name:`react`,version:`19.3.0`,scope:[`default`],loaded:!1,eager:!1,from:`ConfigCustomGoveeSegmentSet`,canLiveRebind:!0,async get(){n.react.loaded=!0;let{react:e}=t,r={...await e()};return r.__esModule!==!0&&Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),function(){return r}},shareConfig:{singleton:!0,requiredVersion:`*`,strictVersion:!1,eager:!1}},"react/jsx-runtime":{name:`react/jsx-runtime`,version:`19.3.0`,scope:[`default`],loaded:!1,eager:!1,from:`ConfigCustomGoveeSegmentSet`,canLiveRebind:!0,async get(){n[`react/jsx-runtime`].loaded=!0;let{"react/jsx-runtime":e}=t,r={...await e()};return r.__esModule!==!0&&Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),function(){return r}},shareConfig:{singleton:!0,requiredVersion:`*`,strictVersion:!1,eager:!1}},"react-dom":{name:`react-dom`,version:`19.3.0`,scope:[`default`],loaded:!1,eager:!1,from:`ConfigCustomGoveeSegmentSet`,canLiveRebind:!0,async get(){n[`react-dom`].loaded=!0;let{"react-dom":e}=t,r={...await e()};return r.__esModule!==!0&&Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),function(){return r}},shareConfig:{singleton:!0,requiredVersion:`*`,strictVersion:!1,eager:!1}},"@mui/material":{name:`@mui/material`,version:`9.4.0`,scope:[`default`],loaded:!1,eager:!1,from:`ConfigCustomGoveeSegmentSet`,canLiveRebind:!0,async get(){n[`@mui/material`].loaded=!0;let{"@mui/material":e}=t,r={...await e()};return r.__esModule!==!0&&Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),function(){return r}},shareConfig:{singleton:!0,requiredVersion:`*`,strictVersion:!1,eager:!1}},"@mui/icons-material":{name:`@mui/icons-material`,version:`9.4.0`,scope:[`default`],loaded:!1,eager:!1,from:`ConfigCustomGoveeSegmentSet`,canLiveRebind:!0,async get(){n[`@mui/icons-material`].loaded=!0;let{"@mui/icons-material":e}=t,r={...await e()};return r.__esModule!==!0&&Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),function(){return r}},shareConfig:{singleton:!0,requiredVersion:`*`,strictVersion:!1,eager:!1}},"@iobroker/gui-components":{name:`@iobroker/gui-components`,version:`10.3.7`,scope:[`default`],loaded:!1,eager:!1,from:`ConfigCustomGoveeSegmentSet`,canLiveRebind:!1,async get(){n[`@iobroker/gui-components`].loaded=!0;let{"@iobroker/gui-components":e}=t,r={...await e()};return r.__esModule!==!0&&Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),function(){return r}},shareConfig:{singleton:!0,requiredVersion:`*`,strictVersion:!1,eager:!1}},"@iobroker/json-config":{name:`@iobroker/json-config`,version:`10.1.0`,scope:[`default`],loaded:!1,eager:!1,from:`ConfigCustomGoveeSegmentSet`,canLiveRebind:!0,async get(){n[`@iobroker/json-config`].loaded=!0;let{"@iobroker/json-config":e}=t,r={...await e()};return r.__esModule!==!0&&Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),function(){return r}},shareConfig:{singleton:!0,requiredVersion:`*`,strictVersion:!1,eager:!1}}},r=[];export{r as usedRemotes,n as usedShared};
|
|
@@ -1214,4 +1214,4 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
|
|
|
1214
1214
|
C5.88,6.549,3.939,8.789,2.531,11.456c-0.299,0.576-0.363,1.195-0.597,1.792c-0.683,1.621-1.429,3.2-1.685,4.992
|
|
1215
1215
|
c-0.107,0.64,0.085,1.237,0.064,1.856c-0.021,0.427-0.299,0.811-0.299,1.237V448c0,10.176,7.189,18.923,17.152,20.907
|
|
1216
1216
|
l213.333,42.667c1.387,0.299,2.795,0.427,4.181,0.427c4.885,0,9.685-1.685,13.525-4.843c4.928-4.053,7.808-10.091,7.808-16.491
|
|
1217
|
-
v-21.333H362.68c11.797,0,21.333-9.557,21.333-21.333V320C384.013,308.224,374.477,298.667,362.68,298.667z`}))}R();function F9(e){return P.createElement(`svg`,{xmlns:`http://www.w3.org/2000/svg`,onClick:t=>e.onClick&&e.onClick(t),viewBox:`0 0 339 339`,width:e.width||(e.fontSize===`small`?16:20),height:e.height||e.width||(e.fontSize===`small`?16:20),className:e.className,style:e.style},P.createElement(`path`,{fill:`currentColor`,d:`M 318.371 88.485 C 332.371 114.538 339.207 142.418 338.881 172.125 C 338.874 172.605 338.631 172.845 338.151 172.845 L 335.411 172.845 C 335.077 172.845 334.911 173.012 334.911 173.345 L 334.911 181.215 C 334.911 181.635 335.121 181.845 335.541 181.845 L 337.711 181.845 C 338.157 181.845 338.364 182.068 338.331 182.515 C 331.921 264.525 267.321 330.135 185.931 337.995 C 89.911 347.265 6.491 275.385 0.301 179.465 C 0.274 179.052 0.467 178.845 0.881 178.845 L 2.381 178.845 C 2.741 178.845 2.921 178.665 2.921 178.305 L 2.911 171.465 C 2.904 171.052 2.694 170.845 2.281 170.845 L 0.441 170.845 C 0.147 170.845 0.001 170.698 0.001 170.405 C -0.289 83.535 64.591 10.095 151.421 0.955 C 211.511 -5.375 269.171 20.055 305.341 68.135 C 305.538 68.391 305.938 68.338 306.062 68.039 C 306.065 68.031 306.068 68.023 306.071 68.015 L 311.541 51.395 C 311.63 51.125 311.924 50.977 312.201 51.065 L 316.881 52.625 C 317.274 52.758 317.407 53.022 317.281 53.415 L 310.271 74.305 C 310.157 74.645 310.197 74.968 310.391 75.275 L 314.011 80.905 C 314.204 81.205 314.481 81.378 314.841 81.425 L 336.771 84.365 C 337.124 84.412 337.277 84.612 337.231 84.965 L 336.601 89.775 C 336.547 90.182 336.321 90.358 335.921 90.305 L 318.721 87.975 C 318.267 87.915 318.151 88.085 318.371 88.485 Z M 200.701 172.615 C 170.541 200.245 121.671 181.975 117.251 140.865 C 117.211 140.518 117.017 140.345 116.671 140.345 L 8.941 140.345 C 8.68 140.346 8.46 140.532 8.421 140.785 C -10.469 249.095 80.901 345.385 189.421 331.625 C 265.701 321.955 325.741 260.435 332.311 183.415 C 343.611 50.895 200.811 -38.365 85.961 28.845 C 47.041 51.625 20.601 89.335 9.791 133.265 C 9.611 133.985 9.891 134.345 10.631 134.345 L 116.371 134.345 C 116.664 134.345 116.824 134.202 116.851 133.915 C 118.397 116.288 126.001 103.005 139.661 94.065 C 172.821 72.345 214.571 95.715 216.891 133.845 C 216.911 134.178 217.087 134.345 217.421 134.345 L 330.342 134.345 C 330.842 134.345 331.092 134.595 331.092 135.095 L 331.092 139.595 C 331.092 140.095 330.842 140.345 330.342 140.345 L 217.161 140.345 C 216.827 140.345 216.641 140.512 216.601 140.845 C 215.141 153.652 209.841 164.242 200.701 172.615 Z M 210.861 135.845 C 210.861 111.572 191.183 91.895 166.911 91.895 C 142.638 91.895 122.961 111.572 122.961 135.845 C 122.961 160.118 142.638 179.795 166.911 179.795 C 191.183 179.795 210.861 160.118 210.861 135.845 Z`,transform:`matrix(0.9999999999999999, 0, 0, 0.9999999999999999, -5.684341886080802e-14, 0)`}),P.createElement(`path`,{fill:`currentColor`,d:`M 222.771 42.215 C 224.237 43.708 223.741 45.092 221.281 46.365 C 220.5 46.768 219.574 46.779 218.781 46.395 C 183.761 29.182 149.014 29.638 114.541 47.765 C 113.252 48.444 111.662 47.8 111.211 46.415 C 110.891 45.435 110.867 44.465 111.141 43.505 C 111.234 43.158 111.437 42.898 111.751 42.725 C 145.631 23.545 186.631 23.045 221.051 41.045 C 221.831 41.452 222.404 41.842 222.771 42.215 Z`,transform:`matrix(0.9999999999999999, 0, 0, 0.9999999999999999, -5.684341886080802e-14, 0)`}),P.createElement(`text`,{style:{whiteSpace:`pre`,fontFamily:`Arial, sans-serif`,fontSize:16},x:`139.395`,y:`288.084`,transform:`matrix(0.9999999999999999, 0, 0, 0.9999999999999999, -5.684341886080802e-14, 0)`},`vacuum`))}R();var uyo={headerID:{fontWeight:`bold`,fontStyle:`italic`},radio:{display:`inline-block`},dialogPaper:{height:`calc(100% - 96px)`}},I9=class extends P.Component{constructor(e){super(e);let t;this.props.cron&&typeof this.props.cron==`string`&&this.props.cron.replace(/^["']/,``)[0]!==`{`?t=this.props.cron.replace(/['"]/g,``).trim():(t=this.props.cron||`{}`,typeof t==`string`&&(t=t.replace(/^["']/,``).replace(/["']\n?$/,``))),this.state={showWarning:``,cron:t}}handleCancel(){this.props.onClose()}handleOk(e){if(!e){let e=K3.cron2state(this.state.cron);if(e.seconds===`*`||e.seconds===`*/1`){this.setState({showWarning:`everySecond`});return}if(e.minutes===`*`||e.minutes===`*/1`){this.setState({showWarning:`everyMinute`});return}}this.props.onOk(this.state.cron),this.props.onClose()}renderWarningDialog(){return this.state.showWarning?P.createElement(Z4,{title:Q.t(`ra_Please confirm`),text:Q.t(this.state.showWarning===`everySecond`?`ra_The schedule will be executed every second. Are you sure?`:`ra_The schedule will be executed every minute. Are you sure?`),onClose:e=>this.setState({showWarning:``},()=>{e&&this.handleOk(!0)})}):null}handleClear(){this.props.onOk(!1),this.props.onClose()}render(){return P.createElement(AG,{onClose:()=>{},maxWidth:`md`,fullWidth:!0,sx:{"& .MuiDialog-paper":uyo.dialogPaper},open:!0,"aria-labelledby":`cron-dialog-title`},this.renderWarningDialog(),P.createElement(PG,{id:`cron-dialog-title`},this.props.title||Q.t(`ra_Define schedule...`)),P.createElement(MG,{style:{height:`100%`,overflow:`hidden`}},P.createElement(K3,{cronExpression:this.state.cron,onChange:e=>this.setState({cron:e}),language:Q.getLanguage()})),P.createElement(jG,null,!!this.props.clearButton&&P.createElement(wG,{color:`grey`,variant:`contained`,onClick:()=>this.handleClear(),startIcon:P.createElement(r2,null)},this.props.clear||Q.t(`ra_Clear`)),P.createElement(wG,{variant:`contained`,onClick:()=>this.handleOk(),color:`primary`,startIcon:P.createElement(G0,null)},this.props.ok||Q.t(`ra_Ok`)),P.createElement(wG,{color:`grey`,variant:`contained`,onClick:()=>this.handleCancel(),startIcon:P.createElement(W0,null)},this.props.cancel||Q.t(`ra_Cancel`))))}};R();var dyo={dialogPaper:{height:`calc(100% - 96px)`}},L9=class extends P.Component{constructor(e){super(e);let t;this.props.cron&&typeof this.props.cron==`string`&&this.props.cron.replace(/^["']/,``)[0]!==`{`?t=this.props.cron.replace(/['"]/g,``).trim():(t=this.props.cron||`{}`,typeof t==`string`&&(t=t.replace(/^["']/,``).replace(/["']\n?$/,``))),this.state={cron:t,mode:this.props.simple?`simple`:this.props.complex?`complex`:(typeof t==`object`||t[0]===`{`)&&!this.props.noWizard?`wizard`:A9(this.props.cron||`* * * * *`)?`simple`:`complex`}}handleCancel(){this.props.onClose()}handleOk(){this.props.onOk(this.state.cron),this.props.onClose()}setMode(e){this.setState({mode:e})}render(){return P.createElement(AG,{onClose:()=>{},maxWidth:`md`,fullWidth:!0,sx:{"& .MuiDialog-paper":dyo.dialogPaper},open:!0,"aria-labelledby":`cron-dialog-title`},P.createElement(PG,{id:`cron-dialog-title`},this.props.title||Q.t(`ra_Define schedule...`)),P.createElement(MG,{style:{height:`100%`,overflow:`hidden`}},this.props.simple&&this.props.complex||!this.props.simple&&!this.props.complex?P.createElement(`div`,null,!this.props.simple&&!this.props.complex&&!this.props.noWizard&&P.createElement(P.Fragment,null,P.createElement(sK,{key:`wizard`,checked:this.state.mode===`wizard`,onChange:()=>this.setMode(`wizard`)}),P.createElement(`label`,{onClick:()=>this.setMode(`wizard`),style:this.state.mode===`wizard`?{}:{color:`lightgrey`}},Q.t(`sc_wizard`))),(!this.props.simple&&!this.props.complex||this.props.simple)&&P.createElement(P.Fragment,null,P.createElement(sK,{key:`simple`,checked:this.state.mode===`simple`,onChange:()=>this.setMode(`simple`)}),P.createElement(`label`,{onClick:()=>this.setMode(`simple`),style:this.state.mode===`simple`?{}:{color:`lightgrey`}},Q.t(`sc_simple`))),(!this.props.simple&&!this.props.complex||this.props.complex)&&P.createElement(P.Fragment,null,P.createElement(sK,{key:`complex`,checked:this.state.mode===`complex`,onChange:()=>this.setMode(`complex`)}),P.createElement(`label`,{onClick:()=>this.setMode(`complex`),style:this.state.mode===`complex`?{}:{color:`lightgrey`}},Q.t(`sc_cron`)))):null,this.state.mode===`simple`&&P.createElement(j9,{cronExpression:this.state.cron,onChange:e=>this.setState({cron:e}),language:Q.getLanguage()}),this.state.mode===`wizard`&&P.createElement(i9,{theme:this.props.theme,schedule:this.state.cron,onChange:e=>this.setState({cron:e})}),this.state.mode===`complex`&&P.createElement(K3,{cronExpression:this.state.cron,onChange:e=>this.setState({cron:e}),language:Q.getLanguage()})),P.createElement(jG,null,P.createElement(wG,{variant:`contained`,onClick:()=>this.handleOk(),color:`primary`,startIcon:P.createElement(G0,null)},this.props.ok||Q.t(`ra_Ok`)),P.createElement(wG,{variant:`contained`,onClick:()=>this.handleCancel(),color:`grey`,startIcon:P.createElement(W0,null)},this.props.cancel||Q.t(`ra_Cancel`))))}};R();var R9=class extends Be{handleOk(){this.props.onClose&&this.props.onClose()}render(){return P.createElement(AG,{open:!0,maxWidth:`sm`,fullWidth:this.props.fullWidth===void 0||this.props.fullWidth,onClose:()=>this.handleOk(),"aria-labelledby":`ar_dialog_message_title`,"aria-describedby":`ar_dialog_message_description`},P.createElement(PG,{id:`ar_dialog_message_title`},this.props.title||Q.t(`ra_Message`)),P.createElement(MG,null,P.createElement(NG,{id:`ar_dialog_message_description`},P.createElement(`span`,{style:{marginRight:this.props.icon?8:0}},this.props.icon||null),this.props.text)),P.createElement(jG,null,P.createElement(wG,{id:`ar_dialog_message_ok`,variant:`contained`,onClick:()=>this.handleOk(),color:`primary`,autoFocus:!0,startIcon:P.createElement(q0,null)},this.props.ok||Q.t(`ra_Close`))))}};R();var z9={headerID:{fontWeight:`bold`,fontStyle:`italic`},dialog:{height:`95%`},dialogMobile:{padding:`4px`,width:`100%`,maxWidth:`100%`,maxHeight:`calc(100% - 16px)`,height:`100%`},content:{height:`100%`,overflow:`hidden`},contentMobile:{padding:`8px 4px`},titleRoot:{whiteSpace:`nowrap`,width:`calc(100% - 72px)`,overflow:`hidden`,display:`inline-block`,textOverflow:`ellipsis`}},B9=class extends P.Component{constructor(e){super(e),q(this,`dialogName`,void 0),q(this,`filters`,void 0),this.dialogName=this.props.dialogName||`default`,this.dialogName=`SelectFile.${this.dialogName}`;let t=(window._localStorage||window.localStorage).getItem(this.dialogName)||`{}`;try{this.filters=JSON.parse(t)}catch{this.filters={}}e.filters&&(this.filters={...this.filters,...e.filters});let n=this.props.selected||[];n=typeof n==`object`?[...n]:[n],n=n.filter(e=>e),this.state={selected:n}}handleCancel(){this.props.onClose()}handleOk(){this.props.onOk(this.props.multiSelect||!Array.isArray(this.state.selected)?this.state.selected:this.state.selected[0]||``),this.props.onClose()}render(){let e;return e=this.state.selected.length?!Array.isArray(this.state.selected)||this.state.selected.length===1?[P.createElement(`span`,{key:`selected`},Q.t(`ra_Selected`),`\xA0`),P.createElement(`span`,{key:`id`,style:z9.headerID},this.state.selected)]:[P.createElement(`span`,{key:`selected`},Q.t(`ra_Selected`),`\xA0`),P.createElement(`span`,{key:`id`,style:z9.headerID},Q.t(`%s items`,this.state.selected.length))]:this.props.title||Q.t(`ra_Please select file...`),P.createElement(AG,{onClose:()=>{},maxWidth:!1,style:{zIndex:this.props.zIndex||void 0},sx:{"& .MuiDialog-paper":{...z9.dialog,...z9.dialogMobile}},fullWidth:!0,open:!0,"aria-labelledby":`ar_dialog_selectfile_title`},P.createElement(PG,{id:`ar_dialog_selectfile_title`,sx:{"&.MuiDialogTitle-root":z9.titleRoot}},e),P.createElement(MG,{style:{...z9.content,...z9.contentMobile}},P.createElement(m8,{ready:!0,imagePrefix:this.props.imagePrefix||this.props.prefix||`../`,allowUpload:!!this.props.allowUpload,allowDownload:this.props.allowDownload!==!1,allowCreateFolder:!!this.props.allowCreateFolder,allowDelete:!!this.props.allowDelete,allowView:this.props.allowView!==!1,showViewTypeButton:this.props.showViewTypeButton!==!1,showToolbar:this.props.showToolbar!==!1,limitPath:this.props.limitPath,filterFiles:this.props.filterFiles,filterByType:this.props.filterByType,selected:this.props.selected,restrictToFolder:this.props.restrictToFolder,allowNonRestricted:this.props.allowNonRestricted,onSelect:(e,t,n)=>{this.setState({selected:Array.isArray(e)?e:[e]},()=>t&&(!this.props.selectOnlyFolders||n)&&this.handleOk())},t:this.props.t||Q.t,lang:this.props.lang||Q.getLanguage(),socket:this.props.socket,themeType:this.props.themeType,themeName:this.props.themeName,theme:this.props.theme,showExpertButton:this.props.showExpertButton,expertMode:this.props.expertMode,showTypeSelector:this.props.showTypeSelector})),P.createElement(jG,null,P.createElement(wG,{variant:`contained`,onClick:()=>this.handleOk(),startIcon:P.createElement(G0,null),disabled:!this.state.selected.length,color:`primary`},this.props.ok||Q.t(`ra_Ok`)),P.createElement(wG,{color:`grey`,variant:`contained`,onClick:()=>this.handleCancel(),startIcon:P.createElement(W0,null)},this.props.cancel||Q.t(`ra_Cancel`))))}};R();var fyo={dialogPaper:{height:`calc(100% - 96px)`}},V9=class extends P.Component{constructor(e){super(e);let t;this.props.cron&&typeof this.props.cron==`string`&&this.props.cron.replace(/^["']/,``)[0]!==`{`?t=this.props.cron.replace(/['"]/g,``).trim():(t=this.props.cron||`{}`,typeof t==`string`&&(t=t.replace(/^["']/,``).replace(/["']\n?$/,``))),this.state={cron:t}}handleCancel(){this.props.onClose()}handleOk(){this.props.onOk(this.state.cron),this.props.onClose()}render(){return P.createElement(AG,{onClose:()=>{},maxWidth:`md`,fullWidth:!0,sx:{"& .MuiDialog-paper":fyo.dialogPaper},open:!0,"aria-labelledby":`cron-dialog-title`},P.createElement(PG,{id:`cron-dialog-title`},this.props.title||Q.t(`ra_Define CRON...`)),P.createElement(MG,{style:{height:`100%`,overflow:`hidden`}},P.createElement(j9,{cronExpression:this.state.cron,onChange:e=>this.setState({cron:e}),language:Q.getLanguage()})),P.createElement(jG,null,P.createElement(wG,{variant:`contained`,disabled:!this.state.cron||this.state.cron.includes(`_`),onClick:()=>this.handleOk(),color:`primary`,startIcon:P.createElement(G0,null)},this.props.ok||Q.t(`ra_Ok`)),P.createElement(wG,{variant:`contained`,onClick:()=>this.handleCancel(),color:`grey`,startIcon:P.createElement(W0,null)},this.props.cancel||Q.t(`ra_Cancel`))))}};function H9(e){var t;return e.type===`object`?`iobobject://${e.address}/${e.path||``}`:e.type===`state`?`iobstate://${e.address}`:e.type===`file`?`iobfile://${e.address}/${e.path||``}`:e.type===`http`?e.address:(t=e.path)!=null&&t.includes(`/`)?`iobfile://${e.address}/${e.path}`:e.path?`iobobject://${e.address}/${e.path}`:`iobstate://${e.address}`}function U9(e){let t={type:`object`,address:``};if(e.startsWith(`iobobject://`)){t.type=`object`,e=e.replace(`iobobject://`,``);let n=e.split(`/`);t.address=n[0],t.path=n[1]}else if(e.startsWith(`iobstate://`)){t.type=`state`,e=e.replace(`iobstate://`,``);let n=e.split(`/`);t.address=n[0],t.path=n[1]}else if(e.startsWith(`iobfile://`)){t.type=`file`,e=e.replace(`iobfile://`,``);let n=e.split(`/`);t.address=n.shift()||``,t.path=n.join(`/`)}else if(e.startsWith(`http://`)||e.startsWith(`https://`))t.type=`http`,t.address=e;else if(e.startsWith(`data:`))t.type=`base64`,t.address=e;else{let n=e.split(`/`);if(n.length===2){if(t.address=n[0],t.path=n[1],t.path.includes(`.`))t.type=`object`;else if(t.path){if(t.path===`val`||t.path===`q`||t.path===`ack`||t.path===`ts`||t.path===`lc`||t.path===`from`||t.path===`user`||t.path===`expire`||t.path===`c`)t.type=`state`;else if(t.path===`common`||t.path===`native`||t.path===`from`||t.path===`acl`||t.path===`type`)t.type=`object`;else throw Error(`Unknown path: ${t.path}`)}else t.type=`state`}else n.length===1?(t.address=n[0],t.type=`state`):(t.address=n.shift()||``,t.type=`file`,t.path=n.join(`/`))}return t}function W9(e,t,n){if(n||=0,e==null||!t)return e;if(t.length-1===n)return e[t[n]];if(typeof e==`object`)return W9(e[t[n]],t,n+1)}function G9(e,t,n,r){if(r||=0,e==null||!t)return n;if(t.length-1===r)return e[t[r]]=n,e;if(typeof e==`object`)return G9(e[t[r]],t,n,r+1)}async function K9(e,t){if(typeof e==`string`&&(e=U9(e)),e.type===`object`){var n;return W9(await t.getObject(e.address),(n=e.path)==null?void 0:n.split(`.`))}if(e.type===`state`){let n=await t.getState(e.address);return e.path?n==null?void 0:n[e.path]:n}if(e.type===`file`)return await t.readFile(e.address,e.path||``,!0);if(e.type===`http`)return fetch(e.address).then(e=>e.text()).then(e=>{if(e.startsWith(`{`)&&e.endsWith(`}`)||e.startsWith(`[`)&&e.endsWith(`]`))try{return JSON.parse(e)}catch{}return e});throw Error(`Unknown type: ${e.type}`)}var q9=e=>{let t={};return e.forEach(e=>{t[e]={requiredVersion:`*`,singleton:!0}}),t};function J9(e){let t=[`@emotion/react`,`@emotion/styled`,`@iobroker/gui-components`,`@iobroker/json-config`,`@iobroker/dm-gui-components`,`@mui/icons-material`,`@mui/material`,`@mui/x-date-pickers`,`date-fns`,`date-fns/locale`,`leaflet`,`leaflet-geosearch`,`react`,`react-ace`,`react-dom`,`react-dropzone`,`semver`];return Array.isArray(e)?q9(t.filter(t=>e.includes(t))):e&&(e.dependencies||e.devDependencies)?q9(t.filter(t=>{var n,r;return((n=e.dependencies)==null?void 0:n[t])||((r=e.devDependencies)==null?void 0:r[t])})):q9(t)}var Y9=r({AdminConnection:()=>Ou,CardTitle:()=>l9,Cleaner:()=>K8,ColorPicker:()=>B3,ComplexCron:()=>K3,ComplexCronDialog:()=>I9,Confirm:()=>Z4,Connection:()=>Eu,Cron:()=>L9,CustomModal:()=>J3,DeviceTypeIcon:()=>C5,DeviceTypeSelector:()=>T5,DialogComplexCron:()=>I9,DialogConfirm:()=>Z4,DialogCron:()=>L9,DialogError:()=>$4,DialogMessage:()=>R9,DialogSelectFile:()=>B9,DialogSelectID:()=>h9,DialogSimpleCron:()=>V9,DialogTextInput:()=>A6,DoorClosed:()=>q8,DoorOpened:()=>J8,ERRORS:()=>wu,EXTENSIONS:()=>Q6,Error:()=>$4,FileBrowser:()=>m8,FileBrowserClass:()=>p8,FileViewer:()=>t8,FileViewerClass:()=>e8,FireOff:()=>Y8,FireOn:()=>X8,FloodOff:()=>Z8,FloodOn:()=>Q8,Gate:()=>$8,GenericApp:()=>t3,HeatValve:()=>e5,Home:()=>t5,Humidity:()=>n5,I18n:()=>Q,ITEM_IMAGES:()=>w7,Icon:()=>X6,IconAdapter:()=>p7,IconAlias:()=>K6,IconButtonImage:()=>M9,IconChannel:()=>m7,IconClearFilter:()=>O7,IconClosed:()=>M6,IconCopy:()=>M7,IconDevice:()=>h7,IconDocument:()=>N7,IconDocumentReadOnly:()=>P7,IconExpert:()=>j6,IconFx:()=>N9,IconHome:()=>r5,IconInstance:()=>g7,IconLogout:()=>P9,IconNoIcon:()=>P6,IconOpen:()=>N6,IconPicker:()=>T8,IconSelector:()=>C8,IconState:()=>_7,IconVacuum:()=>F9,Image:()=>E8,InfoBox:()=>K7,InfoRow:()=>u9,Jalousie:()=>i5,Loader:()=>z4,LoaderHA:()=>R4,LoaderMV:()=>N4,LoaderNW:()=>P4,LoaderPT:()=>I4,LoaderVendor:()=>F4,Logo:()=>O5,MDUtils:()=>k5,MODERN_DARK:()=>lu,MODERN_LIGHT:()=>uu,Material:()=>a5,Message:()=>R9,MotionOff:()=>o5,MotionOn:()=>s5,ObjectBrowser:()=>G7,ObjectBrowserClass:()=>W7,PERMISSION_ERROR:()=>Tu,PROGRESS:()=>Cu,PushButton:()=>c5,RGB:()=>u5,RepairExpert:()=>l5,Router:()=>B4,STATES_NAME_ICONS:()=>D5,SaveCloseButtons:()=>Y4,Schedule:()=>i9,ScrollbarStyles:()=>a9,SelectFile:()=>B9,SelectID:()=>h9,SelectWithIcon:()=>s9,SimpleCron:()=>j9,SimpleCronDialog:()=>V9,Socket:()=>d5,StatCard:()=>c9,TabContainer:()=>j5,TabContent:()=>N5,TabHeader:()=>P5,TableResize:()=>d9,TextInput:()=>A6,TextWithIcon:()=>p9,Theme:()=>gu,Thermometer:()=>f5,ThermometerSimple:()=>p5,Thermostat:()=>m5,ToggleThemeMenu:()=>m9,TreeTable:()=>b9,UploadImage:()=>w9,Utils:()=>q4,Valve:()=>h5,WindowClosed:()=>g5,WindowOpened:()=>_5,WindowTilted:()=>v5,convertCronToText:()=>H3,copy:()=>H4,cron2state:()=>A9,dictionary:()=>e3,extendDeviceTypeTranslation:()=>b5,formatColor:()=>L3,getAttrInObject:()=>W9,getClassicIconTemplates:()=>h8,getIconLibraryName:()=>y8,getIconLibrarySvg:()=>v8,getModernTheme:()=>fu,getSelectIdIcon:()=>J6,getSelectIdIconFromObjects:()=>Y5,getSystemIcon:()=>q6,iobUriParse:()=>U9,iobUriRead:()=>K9,iobUriToString:()=>H9,isIconLibraryMatch:()=>b8,loadIconLibrary:()=>_8,moduleFederationShared:()=>J9,parseColor:()=>I3,pattern2RegEx:()=>W5,printPrompt:()=>M4,setAttrInObject:()=>G9,withWidth:()=>k6}),X9=`__mf_module_cache__`;globalThis[X9]||={share:{},remote:{}},globalThis[X9].share||={},globalThis[X9].remote||={};var Z9=globalThis[X9];for(let e of Object.keys(Z9.share))if(e.startsWith(`default:`)){let t=e.slice(8);Z9.share[t]===void 0&&(Z9.share[t]=Z9.share[e])}else if(!e.includes(`:`)){let t=`default:`+e;Z9.share[t]===void 0&&(Z9.share[t]=Z9.share[e])}var pyo=(e,t)=>{let n=e[t.canonical];if(n!==void 0)return n;let r=t.aliases||[];for(let n of r){if(!Object.prototype.hasOwnProperty.call(e,n))continue;let r=e[n];if(r!==void 0)return e[t.canonical]=r,r}},myo=Symbol.for(`module-federation.shared-cache-listeners`),Q9=Symbol.for(`module-federation.shared-cache-owners`),hyo=e=>{let t=e[Q9];return t===void 0&&(t=Object.create(null),Object.defineProperty(e,Q9,{value:t,enumerable:!1,configurable:!1,writable:!1})),t},gyo=(e,t,n,r)=>{var i;e[t.canonical]=n;let a=t.aliases||[];for(let t of a)Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0});let o=e[Q9];r===void 0?o&&delete o[t.canonical]:hyo(e)[t.canonical]=r;let s=(i=e[myo])==null?void 0:i[t.canonical];if(s)for(let e of s)e(n);return n},_yo=e=>{let t=(()=>{let t=e;for(let e=0;e<5;e++){let e=t==null?void 0:t.default;if(!e||typeof e!=`object`)break;let n=Object.keys(t).filter(e=>e!=="default").map(e=>t[e]);if(n.length>0&&n.some(e=>e!==void 0))break;t=e}return t})();return t&&Object.getPrototypeOf(t)===null?Object.assign({},t):t},$9=pyo(Z9.share,{canonical:`default:@iobroker/gui-components`,aliases:[`@iobroker/gui-components`]});$9===void 0&&($9=_yo(Y9),gyo(Z9.share,{canonical:`default:@iobroker/gui-components`,aliases:[`@iobroker/gui-components`]},$9,`ConfigCustomGoveeSegmentSet`)),(()=>{let e=Y9;for(let t=0;t<5;t++){let t=e==null?void 0:e.default;if(!t||typeof t!=`object`)return t??e;e=t}return e})();export{C5 as $,et as $a,HC as $i,j2 as $n,DG as $r,K3 as $t,i9 as A,pc as Aa,bG as Ai,G0 as An,v0 as Ar,C8 as At,g7 as B,H as Ba,UO as Bi,d2 as Bn,SK as Br,e8 as Bt,p9 as C,lu as Ca,YG as Ci,E4 as Cn,s4 as Cr,X8 as Ct,c9 as D,W as Da,nK as Di,A4 as Dn,f4 as Dr,K8 as Dt,u9 as E,Zl as Ea,tK as Ei,k4 as En,T0 as Er,q8 as Et,N7 as F,Co as Fa,dK as Fi,r2 as Fn,_K as Fr,h8 as Ft,W5 as G,B as Ga,EE as Gi,g2 as Gn,DK as Gr,P6 as Gt,m7 as H,Oi as Ha,xD as Hi,p2 as Hn,wK as Hr,J6 as Ht,M7 as I,ho as Ia,pK as Ii,a2 as In,vK as Ir,m8 as It,j5 as J,P as Ja,mT as Ji,w2 as Jn,SG as Jr,j6 as Jt,P5 as K,Sr as Ka,HT as Ki,v2 as Kn,OK as Kr,N6 as Kt,O7 as L,Ia as La,yI as Li,s2 as Ln,yK as Lr,p8 as Lt,G7 as M,dc as Ma,sK as Mi,J0 as Mn,mK as Mr,v8 as Mt,W7 as N,us as Na,cK as Ni,Y0 as Nn,hK as Nr,b8 as Nt,s9 as O,wc as Oa,rK as Oi,E0 as On,p4 as Or,E8 as Ot,P7 as P,Qo as Pa,lK as Pi,Q0 as Pn,gK as Pr,_8 as Pt,T5 as Q,$e as Qa,tw as Qi,k2 as Qn,EG as Qr,J3 as Qt,w7 as R,Ca as Ra,pI as Ri,c2 as Rn,bK as Rr,Q6 as Rt,m9 as S,gu as Sa,JG as Si,T4 as Sn,a4 as Sr,Z8 as St,l9 as T,fu as Ta,eK as Ti,O4 as Tn,l4 as Tr,J8 as Tt,p7 as U,Ar as Ua,aD as Ui,m2 as Un,TK as Ur,q6 as Ut,h7 as V,V as Va,bO as Vi,f2 as Vn,CK as Vr,X6 as Vt,Y5 as W,z as Wa,kE as Wi,h2 as Wn,EK as Wr,K6 as Wt,O5 as X,Ze as Xa,pw as Xi,E2 as Xn,wG as Xr,k6 as Xt,k5 as Y,ze as Ya,bw as Yi,T2 as Yn,MK as Yr,A6 as Yt,D5 as Z,Qe as Za,cw as Zi,D2 as Zn,TG as Zr,T6 as Zt,j9 as _,Eu as _a,vG as _i,P4 as _n,$2 as _r,n5 as _t,K9 as a,gx as aa,MG as ai,e3 as an,lt as ao,z2 as ar,m5 as at,b9 as b,Cu as ba,KG as bi,_4 as bn,n4 as br,$8 as bt,V9 as c,tb as ca,FG as ci,Y4 as cn,ht as co,A0 as cr,d5 as ct,L9 as d,Ey as da,LG as di,H4 as dn,L as do,G2 as dr,c5 as dt,uS as ea,OG as ei,H3 as en,I as eo,N2 as er,b5 as et,I9 as f,vy as fa,RG as fi,B4 as fn,xt as fo,K2 as fr,s5 as ft,M9 as g,Ou as ga,UG as gi,F4 as gn,c as go,Q2 as gr,r5 as gt,N9 as h,J as ha,HG as hi,I4 as hn,Te as ho,Z2 as hr,i5 as ht,U9 as i,wx as ia,jG as ii,t3 as in,ct as io,O0 as ir,h5 as it,K7 as j,fc as ja,aK as ji,q0 as jn,hG as jr,y8 as jt,a9 as k,xc as ka,iK as ki,V0 as kn,m4 as kr,T8 as kt,B9 as l,Uy as la,_G as li,q4 as ln,vt as lo,j0 as lr,u5 as lt,P9 as m,iy as ma,VG as mi,R4 as mn,d as mo,J2 as mr,a5 as mt,J9 as n,Rx as na,kG as ni,L3 as nn,Be as no,F2 as nr,_5 as nt,H9 as o,hx as oa,NG as oi,$4 as on,F as oo,V2 as or,p5 as ot,F9 as p,dy as pa,zG as pi,z4 as pn,R as po,q2 as pr,o5 as pt,N5 as q,mee as qa,DT as qi,y2 as qn,kK as qr,M6 as qt,W9 as r,Mx as ra,AG as ri,I3 as rn,rt as ro,I2 as rr,g5 as rt,G9 as s,sb as sa,PG as si,Z4 as sn,ft as so,H2 as sr,f5 as st,Y9 as t,Kx as ta,gG as ti,B3 as tn,tt as to,P2 as tr,v5 as tt,R9 as u,Fy as ua,IG as ui,Q as un,bt as uo,U2 as ur,l5 as ut,A9 as v,wu as va,WG as vi,N4 as vn,e4 as vr,t5 as vt,d9 as w,uu as wa,$G as wi,D4 as wn,c4 as wr,Y8 as wt,h9 as x,q as xa,qG as xi,x4 as xn,r4 as xr,Q8 as xt,w9 as y,Tu as ya,GG as yi,M4 as yn,t4 as yr,e5 as yt,_7 as z,ba as za,tA as zi,u2 as zn,xK as zr,t8 as zt};
|
|
1217
|
+
v-21.333H362.68c11.797,0,21.333-9.557,21.333-21.333V320C384.013,308.224,374.477,298.667,362.68,298.667z`}))}R();function F9(e){return P.createElement(`svg`,{xmlns:`http://www.w3.org/2000/svg`,onClick:t=>e.onClick&&e.onClick(t),viewBox:`0 0 339 339`,width:e.width||(e.fontSize===`small`?16:20),height:e.height||e.width||(e.fontSize===`small`?16:20),className:e.className,style:e.style},P.createElement(`path`,{fill:`currentColor`,d:`M 318.371 88.485 C 332.371 114.538 339.207 142.418 338.881 172.125 C 338.874 172.605 338.631 172.845 338.151 172.845 L 335.411 172.845 C 335.077 172.845 334.911 173.012 334.911 173.345 L 334.911 181.215 C 334.911 181.635 335.121 181.845 335.541 181.845 L 337.711 181.845 C 338.157 181.845 338.364 182.068 338.331 182.515 C 331.921 264.525 267.321 330.135 185.931 337.995 C 89.911 347.265 6.491 275.385 0.301 179.465 C 0.274 179.052 0.467 178.845 0.881 178.845 L 2.381 178.845 C 2.741 178.845 2.921 178.665 2.921 178.305 L 2.911 171.465 C 2.904 171.052 2.694 170.845 2.281 170.845 L 0.441 170.845 C 0.147 170.845 0.001 170.698 0.001 170.405 C -0.289 83.535 64.591 10.095 151.421 0.955 C 211.511 -5.375 269.171 20.055 305.341 68.135 C 305.538 68.391 305.938 68.338 306.062 68.039 C 306.065 68.031 306.068 68.023 306.071 68.015 L 311.541 51.395 C 311.63 51.125 311.924 50.977 312.201 51.065 L 316.881 52.625 C 317.274 52.758 317.407 53.022 317.281 53.415 L 310.271 74.305 C 310.157 74.645 310.197 74.968 310.391 75.275 L 314.011 80.905 C 314.204 81.205 314.481 81.378 314.841 81.425 L 336.771 84.365 C 337.124 84.412 337.277 84.612 337.231 84.965 L 336.601 89.775 C 336.547 90.182 336.321 90.358 335.921 90.305 L 318.721 87.975 C 318.267 87.915 318.151 88.085 318.371 88.485 Z M 200.701 172.615 C 170.541 200.245 121.671 181.975 117.251 140.865 C 117.211 140.518 117.017 140.345 116.671 140.345 L 8.941 140.345 C 8.68 140.346 8.46 140.532 8.421 140.785 C -10.469 249.095 80.901 345.385 189.421 331.625 C 265.701 321.955 325.741 260.435 332.311 183.415 C 343.611 50.895 200.811 -38.365 85.961 28.845 C 47.041 51.625 20.601 89.335 9.791 133.265 C 9.611 133.985 9.891 134.345 10.631 134.345 L 116.371 134.345 C 116.664 134.345 116.824 134.202 116.851 133.915 C 118.397 116.288 126.001 103.005 139.661 94.065 C 172.821 72.345 214.571 95.715 216.891 133.845 C 216.911 134.178 217.087 134.345 217.421 134.345 L 330.342 134.345 C 330.842 134.345 331.092 134.595 331.092 135.095 L 331.092 139.595 C 331.092 140.095 330.842 140.345 330.342 140.345 L 217.161 140.345 C 216.827 140.345 216.641 140.512 216.601 140.845 C 215.141 153.652 209.841 164.242 200.701 172.615 Z M 210.861 135.845 C 210.861 111.572 191.183 91.895 166.911 91.895 C 142.638 91.895 122.961 111.572 122.961 135.845 C 122.961 160.118 142.638 179.795 166.911 179.795 C 191.183 179.795 210.861 160.118 210.861 135.845 Z`,transform:`matrix(0.9999999999999999, 0, 0, 0.9999999999999999, -5.684341886080802e-14, 0)`}),P.createElement(`path`,{fill:`currentColor`,d:`M 222.771 42.215 C 224.237 43.708 223.741 45.092 221.281 46.365 C 220.5 46.768 219.574 46.779 218.781 46.395 C 183.761 29.182 149.014 29.638 114.541 47.765 C 113.252 48.444 111.662 47.8 111.211 46.415 C 110.891 45.435 110.867 44.465 111.141 43.505 C 111.234 43.158 111.437 42.898 111.751 42.725 C 145.631 23.545 186.631 23.045 221.051 41.045 C 221.831 41.452 222.404 41.842 222.771 42.215 Z`,transform:`matrix(0.9999999999999999, 0, 0, 0.9999999999999999, -5.684341886080802e-14, 0)`}),P.createElement(`text`,{style:{whiteSpace:`pre`,fontFamily:`Arial, sans-serif`,fontSize:16},x:`139.395`,y:`288.084`,transform:`matrix(0.9999999999999999, 0, 0, 0.9999999999999999, -5.684341886080802e-14, 0)`},`vacuum`))}R();var uyo={headerID:{fontWeight:`bold`,fontStyle:`italic`},radio:{display:`inline-block`},dialogPaper:{height:`calc(100% - 96px)`}},I9=class extends P.Component{constructor(e){super(e);let t;this.props.cron&&typeof this.props.cron==`string`&&this.props.cron.replace(/^["']/,``)[0]!==`{`?t=this.props.cron.replace(/['"]/g,``).trim():(t=this.props.cron||`{}`,typeof t==`string`&&(t=t.replace(/^["']/,``).replace(/["']\n?$/,``))),this.state={showWarning:``,cron:t}}handleCancel(){this.props.onClose()}handleOk(e){if(!e){let e=K3.cron2state(this.state.cron);if(e.seconds===`*`||e.seconds===`*/1`){this.setState({showWarning:`everySecond`});return}if(e.minutes===`*`||e.minutes===`*/1`){this.setState({showWarning:`everyMinute`});return}}this.props.onOk(this.state.cron),this.props.onClose()}renderWarningDialog(){return this.state.showWarning?P.createElement(Z4,{title:Q.t(`ra_Please confirm`),text:Q.t(this.state.showWarning===`everySecond`?`ra_The schedule will be executed every second. Are you sure?`:`ra_The schedule will be executed every minute. Are you sure?`),onClose:e=>this.setState({showWarning:``},()=>{e&&this.handleOk(!0)})}):null}handleClear(){this.props.onOk(!1),this.props.onClose()}render(){return P.createElement(AG,{onClose:()=>{},maxWidth:`md`,fullWidth:!0,sx:{"& .MuiDialog-paper":uyo.dialogPaper},open:!0,"aria-labelledby":`cron-dialog-title`},this.renderWarningDialog(),P.createElement(PG,{id:`cron-dialog-title`},this.props.title||Q.t(`ra_Define schedule...`)),P.createElement(MG,{style:{height:`100%`,overflow:`hidden`}},P.createElement(K3,{cronExpression:this.state.cron,onChange:e=>this.setState({cron:e}),language:Q.getLanguage()})),P.createElement(jG,null,!!this.props.clearButton&&P.createElement(wG,{color:`grey`,variant:`contained`,onClick:()=>this.handleClear(),startIcon:P.createElement(r2,null)},this.props.clear||Q.t(`ra_Clear`)),P.createElement(wG,{variant:`contained`,onClick:()=>this.handleOk(),color:`primary`,startIcon:P.createElement(G0,null)},this.props.ok||Q.t(`ra_Ok`)),P.createElement(wG,{color:`grey`,variant:`contained`,onClick:()=>this.handleCancel(),startIcon:P.createElement(W0,null)},this.props.cancel||Q.t(`ra_Cancel`))))}};R();var dyo={dialogPaper:{height:`calc(100% - 96px)`}},L9=class extends P.Component{constructor(e){super(e);let t;this.props.cron&&typeof this.props.cron==`string`&&this.props.cron.replace(/^["']/,``)[0]!==`{`?t=this.props.cron.replace(/['"]/g,``).trim():(t=this.props.cron||`{}`,typeof t==`string`&&(t=t.replace(/^["']/,``).replace(/["']\n?$/,``))),this.state={cron:t,mode:this.props.simple?`simple`:this.props.complex?`complex`:(typeof t==`object`||t[0]===`{`)&&!this.props.noWizard?`wizard`:A9(this.props.cron||`* * * * *`)?`simple`:`complex`}}handleCancel(){this.props.onClose()}handleOk(){this.props.onOk(this.state.cron),this.props.onClose()}setMode(e){this.setState({mode:e})}render(){return P.createElement(AG,{onClose:()=>{},maxWidth:`md`,fullWidth:!0,sx:{"& .MuiDialog-paper":dyo.dialogPaper},open:!0,"aria-labelledby":`cron-dialog-title`},P.createElement(PG,{id:`cron-dialog-title`},this.props.title||Q.t(`ra_Define schedule...`)),P.createElement(MG,{style:{height:`100%`,overflow:`hidden`}},this.props.simple&&this.props.complex||!this.props.simple&&!this.props.complex?P.createElement(`div`,null,!this.props.simple&&!this.props.complex&&!this.props.noWizard&&P.createElement(P.Fragment,null,P.createElement(sK,{key:`wizard`,checked:this.state.mode===`wizard`,onChange:()=>this.setMode(`wizard`)}),P.createElement(`label`,{onClick:()=>this.setMode(`wizard`),style:this.state.mode===`wizard`?{}:{color:`lightgrey`}},Q.t(`sc_wizard`))),(!this.props.simple&&!this.props.complex||this.props.simple)&&P.createElement(P.Fragment,null,P.createElement(sK,{key:`simple`,checked:this.state.mode===`simple`,onChange:()=>this.setMode(`simple`)}),P.createElement(`label`,{onClick:()=>this.setMode(`simple`),style:this.state.mode===`simple`?{}:{color:`lightgrey`}},Q.t(`sc_simple`))),(!this.props.simple&&!this.props.complex||this.props.complex)&&P.createElement(P.Fragment,null,P.createElement(sK,{key:`complex`,checked:this.state.mode===`complex`,onChange:()=>this.setMode(`complex`)}),P.createElement(`label`,{onClick:()=>this.setMode(`complex`),style:this.state.mode===`complex`?{}:{color:`lightgrey`}},Q.t(`sc_cron`)))):null,this.state.mode===`simple`&&P.createElement(j9,{cronExpression:this.state.cron,onChange:e=>this.setState({cron:e}),language:Q.getLanguage()}),this.state.mode===`wizard`&&P.createElement(i9,{theme:this.props.theme,schedule:this.state.cron,onChange:e=>this.setState({cron:e})}),this.state.mode===`complex`&&P.createElement(K3,{cronExpression:this.state.cron,onChange:e=>this.setState({cron:e}),language:Q.getLanguage()})),P.createElement(jG,null,P.createElement(wG,{variant:`contained`,onClick:()=>this.handleOk(),color:`primary`,startIcon:P.createElement(G0,null)},this.props.ok||Q.t(`ra_Ok`)),P.createElement(wG,{variant:`contained`,onClick:()=>this.handleCancel(),color:`grey`,startIcon:P.createElement(W0,null)},this.props.cancel||Q.t(`ra_Cancel`))))}};R();var R9=class extends Be{handleOk(){this.props.onClose&&this.props.onClose()}render(){return P.createElement(AG,{open:!0,maxWidth:`sm`,fullWidth:this.props.fullWidth===void 0||this.props.fullWidth,onClose:()=>this.handleOk(),"aria-labelledby":`ar_dialog_message_title`,"aria-describedby":`ar_dialog_message_description`},P.createElement(PG,{id:`ar_dialog_message_title`},this.props.title||Q.t(`ra_Message`)),P.createElement(MG,null,P.createElement(NG,{id:`ar_dialog_message_description`},P.createElement(`span`,{style:{marginRight:this.props.icon?8:0}},this.props.icon||null),this.props.text)),P.createElement(jG,null,P.createElement(wG,{id:`ar_dialog_message_ok`,variant:`contained`,onClick:()=>this.handleOk(),color:`primary`,autoFocus:!0,startIcon:P.createElement(q0,null)},this.props.ok||Q.t(`ra_Close`))))}};R();var z9={headerID:{fontWeight:`bold`,fontStyle:`italic`},dialog:{height:`95%`},dialogMobile:{padding:`4px`,width:`100%`,maxWidth:`100%`,maxHeight:`calc(100% - 16px)`,height:`100%`},content:{height:`100%`,overflow:`hidden`},contentMobile:{padding:`8px 4px`},titleRoot:{whiteSpace:`nowrap`,width:`calc(100% - 72px)`,overflow:`hidden`,display:`inline-block`,textOverflow:`ellipsis`}},B9=class extends P.Component{constructor(e){super(e),q(this,`dialogName`,void 0),q(this,`filters`,void 0),this.dialogName=this.props.dialogName||`default`,this.dialogName=`SelectFile.${this.dialogName}`;let t=(window._localStorage||window.localStorage).getItem(this.dialogName)||`{}`;try{this.filters=JSON.parse(t)}catch{this.filters={}}e.filters&&(this.filters={...this.filters,...e.filters});let n=this.props.selected||[];n=typeof n==`object`?[...n]:[n],n=n.filter(e=>e),this.state={selected:n}}handleCancel(){this.props.onClose()}handleOk(){this.props.onOk(this.props.multiSelect||!Array.isArray(this.state.selected)?this.state.selected:this.state.selected[0]||``),this.props.onClose()}render(){let e;return e=this.state.selected.length?!Array.isArray(this.state.selected)||this.state.selected.length===1?[P.createElement(`span`,{key:`selected`},Q.t(`ra_Selected`),`\xA0`),P.createElement(`span`,{key:`id`,style:z9.headerID},this.state.selected)]:[P.createElement(`span`,{key:`selected`},Q.t(`ra_Selected`),`\xA0`),P.createElement(`span`,{key:`id`,style:z9.headerID},Q.t(`%s items`,this.state.selected.length))]:this.props.title||Q.t(`ra_Please select file...`),P.createElement(AG,{onClose:()=>{},maxWidth:!1,style:{zIndex:this.props.zIndex||void 0},sx:{"& .MuiDialog-paper":{...z9.dialog,...z9.dialogMobile}},fullWidth:!0,open:!0,"aria-labelledby":`ar_dialog_selectfile_title`},P.createElement(PG,{id:`ar_dialog_selectfile_title`,sx:{"&.MuiDialogTitle-root":z9.titleRoot}},e),P.createElement(MG,{style:{...z9.content,...z9.contentMobile}},P.createElement(m8,{ready:!0,imagePrefix:this.props.imagePrefix||this.props.prefix||`../`,allowUpload:!!this.props.allowUpload,allowDownload:this.props.allowDownload!==!1,allowCreateFolder:!!this.props.allowCreateFolder,allowDelete:!!this.props.allowDelete,allowView:this.props.allowView!==!1,showViewTypeButton:this.props.showViewTypeButton!==!1,showToolbar:this.props.showToolbar!==!1,limitPath:this.props.limitPath,filterFiles:this.props.filterFiles,filterByType:this.props.filterByType,selected:this.props.selected,restrictToFolder:this.props.restrictToFolder,allowNonRestricted:this.props.allowNonRestricted,onSelect:(e,t,n)=>{this.setState({selected:Array.isArray(e)?e:[e]},()=>t&&(!this.props.selectOnlyFolders||n)&&this.handleOk())},t:this.props.t||Q.t,lang:this.props.lang||Q.getLanguage(),socket:this.props.socket,themeType:this.props.themeType,themeName:this.props.themeName,theme:this.props.theme,showExpertButton:this.props.showExpertButton,expertMode:this.props.expertMode,showTypeSelector:this.props.showTypeSelector})),P.createElement(jG,null,P.createElement(wG,{variant:`contained`,onClick:()=>this.handleOk(),startIcon:P.createElement(G0,null),disabled:!this.state.selected.length,color:`primary`},this.props.ok||Q.t(`ra_Ok`)),P.createElement(wG,{color:`grey`,variant:`contained`,onClick:()=>this.handleCancel(),startIcon:P.createElement(W0,null)},this.props.cancel||Q.t(`ra_Cancel`))))}};R();var fyo={dialogPaper:{height:`calc(100% - 96px)`}},V9=class extends P.Component{constructor(e){super(e);let t;this.props.cron&&typeof this.props.cron==`string`&&this.props.cron.replace(/^["']/,``)[0]!==`{`?t=this.props.cron.replace(/['"]/g,``).trim():(t=this.props.cron||`{}`,typeof t==`string`&&(t=t.replace(/^["']/,``).replace(/["']\n?$/,``))),this.state={cron:t}}handleCancel(){this.props.onClose()}handleOk(){this.props.onOk(this.state.cron),this.props.onClose()}render(){return P.createElement(AG,{onClose:()=>{},maxWidth:`md`,fullWidth:!0,sx:{"& .MuiDialog-paper":fyo.dialogPaper},open:!0,"aria-labelledby":`cron-dialog-title`},P.createElement(PG,{id:`cron-dialog-title`},this.props.title||Q.t(`ra_Define CRON...`)),P.createElement(MG,{style:{height:`100%`,overflow:`hidden`}},P.createElement(j9,{cronExpression:this.state.cron,onChange:e=>this.setState({cron:e}),language:Q.getLanguage()})),P.createElement(jG,null,P.createElement(wG,{variant:`contained`,disabled:!this.state.cron||this.state.cron.includes(`_`),onClick:()=>this.handleOk(),color:`primary`,startIcon:P.createElement(G0,null)},this.props.ok||Q.t(`ra_Ok`)),P.createElement(wG,{variant:`contained`,onClick:()=>this.handleCancel(),color:`grey`,startIcon:P.createElement(W0,null)},this.props.cancel||Q.t(`ra_Cancel`))))}};function H9(e){var t;return e.type===`object`?`iobobject://${e.address}/${e.path||``}`:e.type===`state`?`iobstate://${e.address}`:e.type===`file`?`iobfile://${e.address}/${e.path||``}`:e.type===`http`?e.address:(t=e.path)!=null&&t.includes(`/`)?`iobfile://${e.address}/${e.path}`:e.path?`iobobject://${e.address}/${e.path}`:`iobstate://${e.address}`}function U9(e){let t={type:`object`,address:``};if(e.startsWith(`iobobject://`)){t.type=`object`,e=e.replace(`iobobject://`,``);let n=e.split(`/`);t.address=n[0],t.path=n[1]}else if(e.startsWith(`iobstate://`)){t.type=`state`,e=e.replace(`iobstate://`,``);let n=e.split(`/`);t.address=n[0],t.path=n[1]}else if(e.startsWith(`iobfile://`)){t.type=`file`,e=e.replace(`iobfile://`,``);let n=e.split(`/`);t.address=n.shift()||``,t.path=n.join(`/`)}else if(e.startsWith(`http://`)||e.startsWith(`https://`))t.type=`http`,t.address=e;else if(e.startsWith(`data:`))t.type=`base64`,t.address=e;else{let n=e.split(`/`);if(n.length===2){if(t.address=n[0],t.path=n[1],t.path.includes(`.`))t.type=`object`;else if(t.path){if(t.path===`val`||t.path===`q`||t.path===`ack`||t.path===`ts`||t.path===`lc`||t.path===`from`||t.path===`user`||t.path===`expire`||t.path===`c`)t.type=`state`;else if(t.path===`common`||t.path===`native`||t.path===`from`||t.path===`acl`||t.path===`type`)t.type=`object`;else throw Error(`Unknown path: ${t.path}`)}else t.type=`state`}else n.length===1?(t.address=n[0],t.type=`state`):(t.address=n.shift()||``,t.type=`file`,t.path=n.join(`/`))}return t}function W9(e,t,n){if(n||=0,e==null||!t)return e;if(t.length-1===n)return e[t[n]];if(typeof e==`object`)return W9(e[t[n]],t,n+1)}function G9(e,t,n,r){if(r||=0,e==null||!t)return n;if(t.length-1===r)return e[t[r]]=n,e;if(typeof e==`object`)return G9(e[t[r]],t,n,r+1)}async function K9(e,t){if(typeof e==`string`&&(e=U9(e)),e.type===`object`){var n;return W9(await t.getObject(e.address),(n=e.path)==null?void 0:n.split(`.`))}if(e.type===`state`){let n=await t.getState(e.address);return e.path?n==null?void 0:n[e.path]:n}if(e.type===`file`)return await t.readFile(e.address,e.path||``,!0);if(e.type===`http`)return fetch(e.address).then(e=>e.text()).then(e=>{if(e.startsWith(`{`)&&e.endsWith(`}`)||e.startsWith(`[`)&&e.endsWith(`]`))try{return JSON.parse(e)}catch{}return e});throw Error(`Unknown type: ${e.type}`)}var q9=e=>{let t={};return e.forEach(e=>{t[e]={requiredVersion:`*`,singleton:!0}}),t};function J9(e){let t=[`@emotion/react`,`@emotion/styled`,`@iobroker/gui-components`,`@iobroker/json-config`,`@iobroker/dm-gui-components`,`@mui/icons-material`,`@mui/material`,`@mui/x-date-pickers`,`date-fns`,`date-fns/locale`,`leaflet`,`leaflet-geosearch`,`react`,`react-ace`,`react-dom`,`react-dropzone`,`semver`];return Array.isArray(e)?q9(t.filter(t=>e.includes(t))):e&&(e.dependencies||e.devDependencies)?q9(t.filter(t=>{var n,r;return((n=e.dependencies)==null?void 0:n[t])||((r=e.devDependencies)==null?void 0:r[t])})):q9(t)}var Y9=r({AdminConnection:()=>Ou,CardTitle:()=>l9,Cleaner:()=>K8,ColorPicker:()=>B3,ComplexCron:()=>K3,ComplexCronDialog:()=>I9,Confirm:()=>Z4,Connection:()=>Eu,Cron:()=>L9,CustomModal:()=>J3,DeviceTypeIcon:()=>C5,DeviceTypeSelector:()=>T5,DialogComplexCron:()=>I9,DialogConfirm:()=>Z4,DialogCron:()=>L9,DialogError:()=>$4,DialogMessage:()=>R9,DialogSelectFile:()=>B9,DialogSelectID:()=>h9,DialogSimpleCron:()=>V9,DialogTextInput:()=>A6,DoorClosed:()=>q8,DoorOpened:()=>J8,ERRORS:()=>wu,EXTENSIONS:()=>Q6,Error:()=>$4,FileBrowser:()=>m8,FileBrowserClass:()=>p8,FileViewer:()=>t8,FileViewerClass:()=>e8,FireOff:()=>Y8,FireOn:()=>X8,FloodOff:()=>Z8,FloodOn:()=>Q8,Gate:()=>$8,GenericApp:()=>t3,HeatValve:()=>e5,Home:()=>t5,Humidity:()=>n5,I18n:()=>Q,ITEM_IMAGES:()=>w7,Icon:()=>X6,IconAdapter:()=>p7,IconAlias:()=>K6,IconButtonImage:()=>M9,IconChannel:()=>m7,IconClearFilter:()=>O7,IconClosed:()=>M6,IconCopy:()=>M7,IconDevice:()=>h7,IconDocument:()=>N7,IconDocumentReadOnly:()=>P7,IconExpert:()=>j6,IconFx:()=>N9,IconHome:()=>r5,IconInstance:()=>g7,IconLogout:()=>P9,IconNoIcon:()=>P6,IconOpen:()=>N6,IconPicker:()=>T8,IconSelector:()=>C8,IconState:()=>_7,IconVacuum:()=>F9,Image:()=>E8,InfoBox:()=>K7,InfoRow:()=>u9,Jalousie:()=>i5,Loader:()=>z4,LoaderHA:()=>R4,LoaderMV:()=>N4,LoaderNW:()=>P4,LoaderPT:()=>I4,LoaderVendor:()=>F4,Logo:()=>O5,MDUtils:()=>k5,MODERN_DARK:()=>lu,MODERN_LIGHT:()=>uu,Material:()=>a5,Message:()=>R9,MotionOff:()=>o5,MotionOn:()=>s5,ObjectBrowser:()=>G7,ObjectBrowserClass:()=>W7,PERMISSION_ERROR:()=>Tu,PROGRESS:()=>Cu,PushButton:()=>c5,RGB:()=>u5,RepairExpert:()=>l5,Router:()=>B4,STATES_NAME_ICONS:()=>D5,SaveCloseButtons:()=>Y4,Schedule:()=>i9,ScrollbarStyles:()=>a9,SelectFile:()=>B9,SelectID:()=>h9,SelectWithIcon:()=>s9,SimpleCron:()=>j9,SimpleCronDialog:()=>V9,Socket:()=>d5,StatCard:()=>c9,TabContainer:()=>j5,TabContent:()=>N5,TabHeader:()=>P5,TableResize:()=>d9,TextInput:()=>A6,TextWithIcon:()=>p9,Theme:()=>gu,Thermometer:()=>f5,ThermometerSimple:()=>p5,Thermostat:()=>m5,ToggleThemeMenu:()=>m9,TreeTable:()=>b9,UploadImage:()=>w9,Utils:()=>q4,Valve:()=>h5,WindowClosed:()=>g5,WindowOpened:()=>_5,WindowTilted:()=>v5,convertCronToText:()=>H3,copy:()=>H4,cron2state:()=>A9,dictionary:()=>e3,extendDeviceTypeTranslation:()=>b5,formatColor:()=>L3,getAttrInObject:()=>W9,getClassicIconTemplates:()=>h8,getIconLibraryName:()=>y8,getIconLibrarySvg:()=>v8,getModernTheme:()=>fu,getSelectIdIcon:()=>J6,getSelectIdIconFromObjects:()=>Y5,getSystemIcon:()=>q6,iobUriParse:()=>U9,iobUriRead:()=>K9,iobUriToString:()=>H9,isIconLibraryMatch:()=>b8,loadIconLibrary:()=>_8,moduleFederationShared:()=>J9,parseColor:()=>I3,pattern2RegEx:()=>W5,printPrompt:()=>M4,setAttrInObject:()=>G9,withWidth:()=>k6}),X9=`__mf_module_cache__`;globalThis[X9]||={share:{},remote:{}},globalThis[X9].share||={},globalThis[X9].remote||={};var Z9=globalThis[X9];for(let e of Object.keys(Z9.share))if(e.startsWith(`default:`)){let t=e.slice(8);Z9.share[t]===void 0&&(Z9.share[t]=Z9.share[e])}else if(!e.includes(`:`)){let t=`default:`+e;Z9.share[t]===void 0&&(Z9.share[t]=Z9.share[e])}var pyo=(e,t)=>{let n=e[t.canonical];if(n!==void 0)return n;let r=t.aliases||[];for(let n of r){if(!Object.prototype.hasOwnProperty.call(e,n))continue;let r=e[n];if(r!==void 0)return e[t.canonical]=r,r}},myo=Symbol.for(`module-federation.shared-cache-listeners`),Q9=Symbol.for(`module-federation.shared-cache-owners`),hyo=e=>{let t=e[Q9];return t===void 0&&(t=Object.create(null),Object.defineProperty(e,Q9,{value:t,enumerable:!1,configurable:!1,writable:!1})),t},gyo=(e,t,n,r)=>{var i;e[t.canonical]=n;let a=t.aliases||[];for(let t of a)Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0});let o=e[Q9];r===void 0?o&&delete o[t.canonical]:hyo(e)[t.canonical]=r;let s=(i=e[myo])==null?void 0:i[t.canonical];if(s)for(let e of s)e(n);return n},_yo=e=>{let t=(()=>{let t=e;for(let e=0;e<5;e++){let e=t==null?void 0:t.default;if(!e||typeof e!=`object`)break;let n=Object.keys(t).filter(e=>e!=="default").map(e=>t[e]);if(n.length>0&&n.some(e=>e!==void 0))break;t=e}return t})();return t&&Object.getPrototypeOf(t)===null?Object.assign({},t):t},$9=pyo(Z9.share,{canonical:`default:@iobroker/gui-components`,aliases:[`@iobroker/gui-components`]});$9===void 0&&($9=_yo(Y9),gyo(Z9.share,{canonical:`default:@iobroker/gui-components`,aliases:[`@iobroker/gui-components`]},$9,`ConfigCustomGoveeSegmentSet`)),(()=>{let e=Y9;for(let t=0;t<5;t++){let t=e==null?void 0:e.default;if(!t||typeof t!=`object`)return t??e;e=t}return e})();export{C5 as $,I as $a,HC as $i,j2 as $n,DG as $r,K3 as $t,i9 as A,pc as Aa,bG as Ai,G0 as An,v0 as Ar,C8 as At,g7 as B,H as Ba,UO as Bi,d2 as Bn,SK as Br,e8 as Bt,p9 as C,lu as Ca,YG as Ci,E4 as Cn,s4 as Cr,X8 as Ct,c9 as D,W as Da,nK as Di,A4 as Dn,f4 as Dr,K8 as Dt,u9 as E,Zl as Ea,tK as Ei,k4 as En,T0 as Er,q8 as Et,N7 as F,Co as Fa,dK as Fi,r2 as Fn,_K as Fr,h8 as Ft,W5 as G,B as Ga,EE as Gi,g2 as Gn,DK as Gr,P6 as Gt,m7 as H,Oi as Ha,xD as Hi,p2 as Hn,wK as Hr,J6 as Ht,M7 as I,ho as Ia,pK as Ii,a2 as In,vK as Ir,m8 as It,j5 as J,P as Ja,mT as Ji,w2 as Jn,SG as Jr,j6 as Jt,P5 as K,Sr as Ka,HT as Ki,v2 as Kn,OK as Kr,N6 as Kt,O7 as L,Ia as La,yI as Li,s2 as Ln,yK as Lr,p8 as Lt,G7 as M,dc as Ma,sK as Mi,J0 as Mn,mK as Mr,v8 as Mt,W7 as N,us as Na,cK as Ni,Y0 as Nn,hK as Nr,b8 as Nt,s9 as O,wc as Oa,rK as Oi,E0 as On,p4 as Or,E8 as Ot,P7 as P,Qo as Pa,lK as Pi,Q0 as Pn,gK as Pr,_8 as Pt,T5 as Q,et as Qa,tw as Qi,k2 as Qn,EG as Qr,J3 as Qt,w7 as R,Ca as Ra,pI as Ri,c2 as Rn,bK as Rr,Q6 as Rt,m9 as S,gu as Sa,JG as Si,T4 as Sn,a4 as Sr,Z8 as St,l9 as T,fu as Ta,eK as Ti,O4 as Tn,l4 as Tr,J8 as Tt,p7 as U,Ar as Ua,aD as Ui,m2 as Un,TK as Ur,q6 as Ut,h7 as V,V as Va,bO as Vi,f2 as Vn,CK as Vr,X6 as Vt,Y5 as W,z as Wa,kE as Wi,h2 as Wn,EK as Wr,K6 as Wt,O5 as X,Ze as Xa,pw as Xi,E2 as Xn,wG as Xr,k6 as Xt,k5 as Y,ze as Ya,bw as Yi,T2 as Yn,MK as Yr,A6 as Yt,D5 as Z,Qe as Za,cw as Zi,D2 as Zn,TG as Zr,T6 as Zt,j9 as _,Eu as _a,vG as _i,P4 as _n,$2 as _r,n5 as _t,K9 as a,gx as aa,MG as ai,e3 as an,F as ao,z2 as ar,m5 as at,b9 as b,Cu as ba,KG as bi,_4 as bn,n4 as br,$8 as bt,V9 as c,tb as ca,FG as ci,Y4 as cn,vt as co,A0 as cr,d5 as ct,L9 as d,Ey as da,LG as di,H4 as dn,xt as do,G2 as dr,c5 as dt,uS as ea,OG as ei,H3 as en,tt as eo,N2 as er,b5 as et,I9 as f,vy as fa,RG as fi,B4 as fn,R as fo,K2 as fr,s5 as ft,M9 as g,Ou as ga,UG as gi,F4 as gn,Q2 as gr,r5 as gt,N9 as h,J as ha,HG as hi,I4 as hn,c as ho,Z2 as hr,i5 as ht,U9 as i,wx as ia,jG as ii,t3 as in,lt as io,O0 as ir,h5 as it,K7 as j,fc as ja,aK as ji,q0 as jn,hG as jr,y8 as jt,a9 as k,xc as ka,iK as ki,V0 as kn,m4 as kr,T8 as kt,B9 as l,Uy as la,_G as li,q4 as ln,bt as lo,j0 as lr,u5 as lt,P9 as m,iy as ma,VG as mi,R4 as mn,Te as mo,J2 as mr,a5 as mt,J9 as n,Rx as na,kG as ni,L3 as nn,rt as no,F2 as nr,_5 as nt,H9 as o,hx as oa,NG as oi,$4 as on,ft as oo,V2 as or,p5 as ot,F9 as p,dy as pa,zG as pi,z4 as pn,d as po,q2 as pr,o5 as pt,N5 as q,mee as qa,DT as qi,y2 as qn,kK as qr,M6 as qt,W9 as r,Mx as ra,AG as ri,I3 as rn,ct as ro,I2 as rr,g5 as rt,G9 as s,sb as sa,PG as si,Z4 as sn,ht as so,H2 as sr,f5 as st,Y9 as t,Kx as ta,gG as ti,B3 as tn,Be as to,P2 as tr,v5 as tt,R9 as u,Fy as ua,IG as ui,Q as un,L as uo,U2 as ur,l5 as ut,A9 as v,wu as va,WG as vi,N4 as vn,e4 as vr,t5 as vt,d9 as w,uu as wa,$G as wi,D4 as wn,c4 as wr,Y8 as wt,h9 as x,q as xa,qG as xi,x4 as xn,r4 as xr,Q8 as xt,w9 as y,Tu as ya,GG as yi,M4 as yn,t4 as yr,e5 as yt,_7 as z,ba as za,tA as zi,u2 as zn,xK as zr,t8 as zt};
|