iobroker.ai-usage 0.15.0 → 0.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (85) hide show
  1. package/README.md +43 -25
  2. package/admin/custom/assets/Components-CUzkV92A.js +1 -0
  3. package/admin/custom/assets/ConfigPanel-Ba8Ifmtr.js +1 -0
  4. package/admin/custom/assets/{_virtual_mf-localSharedImportMap___mfe_internal__AiUsageComponentSet__mf_owner__1-DKcsNxEw.js → _virtual_mf-localSharedImportMap___mfe_internal__AiUsageComponentSet__mf_owner__1-DNl3eli9.js} +1 -1
  5. package/admin/custom/assets/{_virtual_mf___mfe_internal__AiUsageComponentSet__mf_owner__1__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-DzPBJWNQ.js → _virtual_mf___mfe_internal__AiUsageComponentSet__mf_owner__1__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-D9ahEuiO.js} +1 -1
  6. package/admin/custom/assets/{_virtual_mf___mfe_internal__AiUsageComponentSet__mf_owner__1__loadShare___mf_0_iobroker_mf_1_json_mf_2_config__loadShare__.js-DEdJInQG.js → _virtual_mf___mfe_internal__AiUsageComponentSet__mf_owner__1__loadShare___mf_0_iobroker_mf_1_json_mf_2_config__loadShare__.js-efMptIcS.js} +20 -20
  7. package/admin/custom/assets/{_virtual_mf___mfe_internal__AiUsageComponentSet__mf_owner__1__loadShare__react_mf_2_dom_mf_1_client__loadShare__.js-CFn_lBXc.js → _virtual_mf___mfe_internal__AiUsageComponentSet__mf_owner__1__loadShare__react_mf_2_dom_mf_1_client__loadShare__.js-C-VthpMf.js} +1 -1
  8. package/admin/custom/assets/{_virtual_mf___mfe_internal__AiUsageComponentSet__mf_owner__1__prebuild___mf_0_iobroker_mf_1_gui_mf_2_components__prebuild__-DeLUTSLT.js → _virtual_mf___mfe_internal__AiUsageComponentSet__mf_owner__1__prebuild___mf_0_iobroker_mf_1_gui_mf_2_components__prebuild__-CGDiwFLL.js} +1 -1
  9. package/admin/custom/assets/{hostInit-DoGxgbHj.js → hostInit-Cw5ENlLV.js} +1 -1
  10. package/admin/custom/assets/index-Dpb3gNiC.js +1 -0
  11. package/admin/custom/assets/{lib-MY71LxhX.js → lib-B7wxSBAr.js} +2 -2
  12. package/admin/custom/assets/{mf-entry-bootstrap-0-5b409a88.js → mf-entry-bootstrap-0-fdbcf56c.js} +2 -2
  13. package/admin/custom/assets/virtualExposes-DE_MSsgT.js +1 -0
  14. package/admin/custom/assets/{virtual_mf-REMOTE_ENTRY_ID___mfe_internal__AiUsageComponentSet__customComponents_js-x_0QZXBR.js → virtual_mf-REMOTE_ENTRY_ID___mfe_internal__AiUsageComponentSet__customComponents_js-D-xtRWld.js} +1 -1
  15. package/admin/custom/assets/virtual_mf-exposes-ssr___mfe_internal__AiUsageComponentSet__customComponents_js-BwmGOqIW.js +2 -0
  16. package/admin/custom/assets/{virtual_mf-exposes___mfe_internal__AiUsageComponentSet__customComponents_js-qa4g3G_V.js → virtual_mf-exposes___mfe_internal__AiUsageComponentSet__customComponents_js-DfdGdCaK.js} +2 -2
  17. package/admin/custom/customComponents.js +1 -1
  18. package/admin/custom/i18n/de.json +4 -0
  19. package/admin/custom/i18n/en.json +4 -0
  20. package/admin/custom/i18n/es.json +4 -0
  21. package/admin/custom/i18n/fr.json +4 -0
  22. package/admin/custom/i18n/it.json +4 -0
  23. package/admin/custom/i18n/nl.json +4 -0
  24. package/admin/custom/i18n/pl.json +4 -0
  25. package/admin/custom/i18n/pt.json +4 -0
  26. package/admin/custom/i18n/ru.json +4 -0
  27. package/admin/custom/i18n/uk.json +4 -0
  28. package/admin/custom/i18n/zh-cn.json +4 -0
  29. package/admin/custom/mf-manifest.json +1 -1
  30. package/admin/i18n/de.json +2 -0
  31. package/admin/i18n/en.json +2 -0
  32. package/admin/i18n/es.json +2 -0
  33. package/admin/i18n/fr.json +2 -0
  34. package/admin/i18n/it.json +2 -0
  35. package/admin/i18n/nl.json +2 -0
  36. package/admin/i18n/pl.json +2 -0
  37. package/admin/i18n/pt.json +2 -0
  38. package/admin/i18n/ru.json +2 -0
  39. package/admin/i18n/uk.json +2 -0
  40. package/admin/i18n/zh-cn.json +2 -0
  41. package/build/lib/error-text.js +27 -3
  42. package/build/lib/error-text.js.map +2 -2
  43. package/build/lib/http.js +27 -7
  44. package/build/lib/http.js.map +2 -2
  45. package/build/lib/poll-engine.js +255 -55
  46. package/build/lib/poll-engine.js.map +2 -2
  47. package/build/lib/provider.js +8 -1
  48. package/build/lib/provider.js.map +2 -2
  49. package/build/lib/providers/anthropic-api.js +8 -3
  50. package/build/lib/providers/anthropic-api.js.map +2 -2
  51. package/build/lib/providers/chatgpt-auth.js +1 -1
  52. package/build/lib/providers/chatgpt-auth.js.map +2 -2
  53. package/build/lib/providers/chatgpt-sub.js +52 -13
  54. package/build/lib/providers/chatgpt-sub.js.map +2 -2
  55. package/build/lib/providers/claude-auth.js +8 -1
  56. package/build/lib/providers/claude-auth.js.map +2 -2
  57. package/build/lib/providers/claude-sub.js +12 -5
  58. package/build/lib/providers/claude-sub.js.map +2 -2
  59. package/build/lib/providers/deepseek.js +11 -3
  60. package/build/lib/providers/deepseek.js.map +3 -3
  61. package/build/lib/providers/gemini-sub.js +129 -15
  62. package/build/lib/providers/gemini-sub.js.map +2 -2
  63. package/build/lib/providers/openai.js +2 -2
  64. package/build/lib/providers/openai.js.map +2 -2
  65. package/build/lib/providers/openrouter.js +30 -8
  66. package/build/lib/providers/openrouter.js.map +2 -2
  67. package/build/lib/providers/report-utils.js +6 -0
  68. package/build/lib/providers/report-utils.js.map +2 -2
  69. package/build/lib/pure-helpers.js +17 -3
  70. package/build/lib/pure-helpers.js.map +2 -2
  71. package/build/lib/sign-in-manager.js +22 -8
  72. package/build/lib/sign-in-manager.js.map +2 -2
  73. package/build/lib/snapshot-tree.js +3 -4
  74. package/build/lib/snapshot-tree.js.map +2 -2
  75. package/build/lib/totals.js +18 -5
  76. package/build/lib/totals.js.map +2 -2
  77. package/build/main.js +335 -118
  78. package/build/main.js.map +2 -2
  79. package/io-package.json +15 -15
  80. package/package.json +8 -8
  81. package/admin/custom/assets/Components-DrPN-Mtb.js +0 -1
  82. package/admin/custom/assets/ConfigPanel-uVXFjx9g.js +0 -1
  83. package/admin/custom/assets/index-Ex4rgN0E.js +0 -1
  84. package/admin/custom/assets/virtualExposes-DP5VuPcn.js +0 -1
  85. package/admin/custom/assets/virtual_mf-exposes-ssr___mfe_internal__AiUsageComponentSet__customComponents_js-CeNvuNfG.js +0 -2
package/README.md CHANGED
@@ -27,7 +27,7 @@ subscriptions plus OpenRouter, DeepSeek, OpenAI and Anthropic API accounts. Need
27
27
 
28
28
  ## Sentry / Error reporting
29
29
 
30
- **This adapter uses Sentry libraries to automatically report exceptions and code errors to the developers.** Reporting only happens if you have enabled error reporting in the ioBroker diagnostics (**System settings → Diagnostics and error reporting**). Only an anonymous installation ID is transmitted — no name, e-mail address or IP address.
30
+ **This adapter uses Sentry libraries to automatically report exceptions and code errors to the developers.** Reporting is active by default. It stays off when the ioBroker diagnostics setting is `none` (`diag` in the system configuration), when data reporting is disabled for this instance or its host (`disableDataReporting`), and on CI systems. A report contains the error with its stack trace and technical context such as versions and platform, plus an anonymous installation ID.
31
31
 
32
32
  For details and how to disable it, see the [Sentry plugin documentation](https://github.com/ioBroker/plugin-sentry#plugin-sentry). Error reporting requires js-controller 3.0 or newer.
33
33
 
@@ -56,8 +56,10 @@ The instance settings show one list of AI accounts. Switch on what you want to m
56
56
  | **[OpenAI](https://openai.com), [Anthropic](https://www.anthropic.com)** | Needs an **admin key** of your organisation, not the key the admin assistant uses. A personal account without an organisation cannot deliver these reports at all — use the Claude subscription instead |
57
57
 
58
58
  The three subscription endpoints are **not officially documented**; they are the ones those
59
- providers' own tools use and can change without notice. Claude was tested against a live
60
- subscription, ChatGPT and Google could not be — please open an issue if something looks wrong.
59
+ providers' own tools use and can change without notice. Only the Claude subscription was tested
60
+ against a real account; ChatGPT, Google, OpenRouter, DeepSeek and the OpenAI and Anthropic
61
+ organisation reports are built from the providers' references and never ran against a real
62
+ account — please open an issue if something looks wrong.
61
63
 
62
64
  | Option | Description | Default |
63
65
  | ----------------- | ---------------------------------------------------------------------------------------------------- | ------- |
@@ -116,8 +118,9 @@ can be the one in force while your session and week are nearly empty. It never r
116
118
  **Only plan-wide windows raise the warning** — your session and your week — and the message names
117
119
  the window it came from. A window belonging to a single model keeps its own datapoints but stays
118
120
  out of it: a model you never use can sit at 100 % forever, and an alarm that never clears is worse
119
- than none. Google reports no plan-wide window at all, so there the fullest model window speaks for
120
- the account and the warning names that model. To watch one model anyway, build the automation on
121
+ than none. Google is special: its quota pools are the plan-wide windows where it reports them;
122
+ otherwise its per-model buckets are the plan, the fullest speaks for the account and the warning
123
+ names that model. To watch one model anyway, build the automation on
121
124
  its own `limits.<window>.percent`.
122
125
 
123
126
  **A nearly spent budget counts the same way.** Where a provider reports a granted budget, it
@@ -142,6 +145,11 @@ started and has not asked yet.
142
145
  Save the settings first, then sign in — the row needs a saved account to attach the sign-in to.
143
146
  After a successful sign-in the account is queried immediately, so values appear within seconds.
144
147
 
148
+ ### A key row in the settings says its stored key is missing
149
+
150
+ The key was deleted from the admin's credential storage. Switch the account off, or add the key
151
+ again under Settings → Credentials — the adapter picks up a changed or new key while it runs.
152
+
145
153
  ### A subscription asks you to sign in again although it worked yesterday
146
154
 
147
155
  The provider rejected the stored sign-in — a refresh token that was revoked or expired. The row says
@@ -155,7 +163,36 @@ so instead of pretending to be connected; signing in again is all it takes.
155
163
  Placeholder for the next version (at the beginning of the line):
156
164
  -->
157
165
 
158
- ### 0.15.0 (2026-09-16)
166
+ ### 0.16.0 (2026-09-25)
167
+
168
+ - Fixed: ChatGPT limits of a single model (such as GPT-5.3-Codex-Spark) were never shown — each now gets its own 5-hour and weekly window
169
+ - Fixed: An OpenRouter key with a monthly limit counted its whole lifetime spend against that limit and could stay at "limit reached" for good
170
+ - Changed: OpenRouter `credits.used` now shows the use in the running limit period; the lifetime spend stays in `costs.total`, so the history jumps once
171
+ - New: OpenRouter spend today and this month, with a month-end projection, now also counted in the cost totals
172
+ - Fixed: Claude extra usage billed in euros was counted as dollars in the cost totals — it now keeps the account's own currency
173
+ - Fixed: Alarms of an account stayed on for good when its API key was removed, or when the last account was switched off
174
+ - Fixed: After a restart the totals no longer drop to 0 for a moment, and `total.limitReached` no longer flips while the first query fails
175
+ - Fixed: Last month's costs of an account that stopped delivering no longer stay in this month's totals
176
+ - Fixed: A model limit alone no longer raises the account's warning when the plan-wide windows are still unused
177
+ - Fixed: Signing out now clears the account's alarms at once instead of with the next query
178
+ - Fixed: The ChatGPT sign-in no longer breaks off while you are still typing the code
179
+ - New: The adapter picks up a key that was changed or deleted in the credential storage while it runs
180
+ - New: A workspace stopped by its used-up credits or its spend control counts as "limit reached" for ChatGPT
181
+ - New: Google's plan-wide quota pools (5-hour and weekly) are shown where Google reports them, and they decide the account's warning
182
+ - Improved: `info.error` says why a key account has no key — none selected, deleted from the storage, or holding no key
183
+ - Improved: Google accounts without a Code Assist project show Google's own reason, and a refused quota query no longer reports a rejected sign-in
184
+ - Fixed: An Anthropic organisation account no longer fails for the whole 1st of every month
185
+ - Fixed: The settings page no longer spins forever when the instance does not answer, and shows a key row whose stored key is gone
186
+ - Fixed: Copying the sign-in code or link now works on plain http:// as well
187
+ - Improved: Several notifications of different accounts are kept instead of the newest replacing the previous one
188
+ - Improved: After a throttle the next query waits as long as the provider asks, instead of retrying too early
189
+ - Fixed: An instance stopped during its start no longer overwrites the stopped state of its accounts afterwards
190
+
191
+ Only the Claude subscription runs against a real account here. The ChatGPT, OpenRouter, Google,
192
+ DeepSeek and organisation changes follow the providers' references and their own tools' sources
193
+ and are covered by tests, but were not seen on a real account.
194
+
195
+ ### 0.15.0 (2026-09-16) — stable
159
196
 
160
197
  - Fixed: Model channels of an organisation account no longer vanish at the turn of a month — a model with no usage yet was deleted with its history and re-created on its next use
161
198
  - Fixed: Stopping the instance right after it started no longer leaves the accounts showing as connected while the instance is switched off
@@ -205,25 +242,6 @@ OpenRouter, DeepSeek, OpenAI or Anthropic account.
205
242
  - Fixed: The last-update stamp of an account no longer moves forward while the provider is only throttling — it dates the values standing next to it, so you can see how old they really are
206
243
  - Improved: Twenty-five more datapoints explain themselves in the object tree — what "today" means (the provider counts it in UTC), and why the cost totals can be lower than the accounts show
207
244
 
208
- ### 0.12.0 (2026-09-06)
209
-
210
- - Fixed: An account that has not been signed in yet no longer reports a rejected sign-in — no warning, no notification, and the settings page keeps offering the sign-in button
211
- - Fixed: An account whose API key is missing or unreadable is now shown as not delivering, instead of leaving its old values standing as though they were current
212
- - Fixed: An answer arriving while the adapter shuts down can no longer mark an account as online again after the shutdown wrote it offline
213
- - Fixed: A throttled account counts as delivering everywhere now — the connection icon and the "reachable accounts" total no longer contradict each other
214
- - Fixed: A limit the provider reports as empty is no longer shown as 0 % used, and a Google quota without a value no longer reads as completely used up
215
- - Fixed: A rejected ChatGPT sign-in now says so at once instead of leaving you waiting for a quarter of an hour, and a Google account keeps delivering when one route is unavailable
216
- - Fixed: A Google account without an AI subscription says so, instead of asking for a sign-in that cannot change the answer
217
- - New: Every limit window shows whether it is the limit currently in force — with Claude the provider states it, elsewhere it is the window that speaks for the account
218
- - Improved: An account is reported as at its limit when the provider says the window is closed, not only when the percentage happens to reach 100
219
- - Improved: A window's reset time is written to the minute, so a recording of it no longer gains an entry on every single query, only on real changes
220
- - Improved: An account that is delivering again says so in the log, instead of leaving the warning about its outage standing as the last word on it
221
- - Improved: The settings page no longer asks the adapter for every status every four seconds — the values now arrive on their own as they change
222
- - Changed: "Balance sufficient for calls" now sits under credits, where it belongs; the datapoint at the old place is removed automatically
223
- - Changed: Each account node shows the readable provider name instead of the internal one — "Claude Max (Claude)" instead of "Claude Max (claude-sub)"
224
- - Fixed: A per-model folder is now named in your ioBroker language as well, instead of carrying the provider's bare model identifier as its only name
225
- - New: The datapoints whose meaning is not obvious from their name now carry a short explanation in eleven languages, shown in the object tree
226
-
227
245
  [Older changelogs can be found there](CHANGELOG_OLD.md)
228
246
 
229
247
  ## Support
@@ -0,0 +1 @@
1
+ import{t as e}from"./ConfigPanel-Ba8Ifmtr.js";var t={ConfigPanel:e};export{t as default};
@@ -0,0 +1 @@
1
+ import{t as e}from"./_virtual_mf___mfe_internal__AiUsageComponentSet__mf_owner__1__loadShare___mf_0_iobroker_mf_1_json_mf_2_config__loadShare__.js-efMptIcS.js";import{Br as t,Dr as n,Er as r,Fi as i,Ha as a,Hi as o,Or as s,Ti as c,Tr as l,Ua as u,Va as d,Xr as f,ai as p,ci as m,ei as h,ga as g,ii as _,in as v,kr as y,li as b,ni as x,oi as S,vo as C}from"./_virtual_mf___mfe_internal__AiUsageComponentSet__mf_owner__1__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-D9ahEuiO.js";C();var w=[{kind:`claude-sub`,label:`Claude`,flow:`paste-code`,accountId:`claude`},{kind:`chatgpt-sub`,label:`ChatGPT`,flow:`device-code`,accountId:`chatgpt`},{kind:`gemini-sub`,label:`Gemini`,flow:`paste-url`,accountId:`gemini`},{kind:`openrouter`,label:`OpenRouter`},{kind:`deepseek`,label:`DeepSeek`},{kind:`openai`,label:`OpenAI`,needsAdminKey:!0},{kind:`anthropic-api`,label:`Anthropic`,needsAdminKey:!0}];function T(e){return e.trim().replace(/[^a-zA-Z0-9_-]/g,`_`).replace(/_{2,}/g,`_`).replace(/^_+|_+$/g,``)}w.map(e=>e.kind);var E=Object.fromEntries(w.filter(e=>e.accountId!==void 0).map(e=>[e.kind,e.accountId]));function D(e,t){let n=E[e];if(n)return n;let r=T(t.replace(/^system\.credentials\./,``));return r?`${r}-api`:``}function O(e){let t=typeof e==`number`?e:typeof e==`string`&&e.trim()!==``?Number(e):NaN;return Number.isFinite(t)?Math.min(100,Math.max(10,Math.round(t))):80}var k=[`en`,`de`,`ru`,`pt`,`nl`,`fr`,`it`,`es`,`pl`,`uk`,`zh-cn`];function A(e){let t=(e||`en`).toLowerCase(),n=t.startsWith(`zh`)?`zh-cn`:t.substring(0,2);return k.includes(n)?n:`en`}function j(e,t){if(e==null)return null;let n=typeof t==`string`?t:``;return e===!0?{key:`aiu_stOffline`,color:`error`,title:n}:n?{key:`aiu_stLimited`,color:`warning`,title:n}:{key:`aiu_stOnline`,color:`success`,title:``}}var M=[{provider:`claude-sub`,label:`Claude`,captionKey:`aiu_capClaude`},{provider:`chatgpt-sub`,label:`ChatGPT`,captionKey:`aiu_capChatgpt`},{provider:`gemini-sub`,label:`Gemini`,captionKey:`aiu_capGemini`}];function N(e,t){let n=`${e} ${t}`.toLowerCase();return n.includes(`gemini`)?null:n.includes(`anthropic`)||n.includes(`claude`)?{provider:`anthropic-api`,label:`Anthropic`,needsAdminKey:!0}:n.includes(`chatgpt`)||n.includes(`openai`)?{provider:`openai`,label:`OpenAI`,needsAdminKey:!0}:n.includes(`deepseek`)?{provider:`deepseek`,label:`DeepSeek`,needsAdminKey:!1}:n.includes(`openrouter`)||n.includes(`router`)?{provider:`openrouter`,label:`OpenRouter`,needsAdminKey:!1}:null}var P=w.filter(e=>e.flow===void 0).map(e=>({provider:e.kind,label:e.label,needsAdminKey:e.needsAdminKey===!0}));function F(e,t){return e.find(e=>e.provider===t)}function I(e,t,n,r){let i=e.filter(e=>e.provider!==t);return n?[...i,{name:r,provider:t,credentialId:``,warnThreshold:80}]:i}function L(e,t,n,r){let i=e.filter(e=>e.credentialId!==t.id);return!r||!n?i:[...i,{name:t.name,provider:n,credentialId:t.id,warnThreshold:80}]}function R(e,t,n){let r=O(n);return e.map(e=>(t.credentialId?e.credentialId===t.credentialId:e.provider===t.provider)?{...e,warnThreshold:r}:e)}function z(e,t){let n=new Set(t.map(e=>e.id));return e.filter(e=>!M.some(t=>t.provider===e.provider)&&!n.has(e.credentialId))}function B(e,t,n){return e?t?`unreadable`:n===0?`empty`:`list`:`loading`}function V(e){return e===`signInStatus`?1e4:3e4}function H(e,t){let n,r=new Promise(e=>{n=setTimeout(()=>e(null),t)});return Promise.race([e,r]).finally(()=>clearTimeout(n))}function U(e,t){return!e.alive&&t.alive||e.changed&&!t.changed||e.subscriptions.join(`|`)!==t.subscriptions.join(`|`)}function W(e,t,n){let r={...e};for(let{provider:e,answer:i,sequence:a}of t)i&&a===(n[e]??0)&&(r[e]=i);return r}var G=`￿`,K=4e3,q=3e4,J=class extends e{constructor(e){super(e),g(this,`timer`,null),g(this,`subscribed`,[]),g(this,`unmounted`,!1),g(this,`sequence`,{}),g(this,`onStateChange`,(e,t)=>{if(this.unmounted||!t||t.val===null||t.val===void 0)return;let n=e.split(`.`),r=`${n[2]}.${n[n.length-1]}`;this.setState(e=>({serviceState:{...e.serviceState,[r]:t.val}}))}),this.state={...this.state,credentials:[],credentialsLoaded:!1,credentialsFailed:!1,thresholdDrafts:{},copied:{},signIn:{},drafts:{},providerChoice:{},serviceState:{},busy:``}}async componentDidMount(){var e;(e=super.componentDidMount)==null||e.call(this),await Promise.all([this.loadCredentials(),this.refreshSignIn(),this.syncSubscriptions()]),this.scheduleSignInPoll()}componentDidUpdate(e){this.syncSubscriptions(),U(this.factsOf(e),this.factsOf(this.props))&&this.refreshSignIn().finally(()=>this.scheduleSignInPoll())}factsOf(t){let n=e.getValue(t.data,`accounts`),r=Array.isArray(n)?n:[];return{alive:!!t.alive,changed:!!t.changed,subscriptions:M.filter(e=>F(r,e.provider)).map(e=>e.provider)}}componentWillUnmount(){var e;this.unmounted=!0,this.timer&&=(clearTimeout(this.timer),null),this.unsubscribeAll(),(e=super.componentWillUnmount)==null||e.call(this)}scheduleSignInPoll(){if(this.unmounted)return;this.timer&&clearTimeout(this.timer);let e=Object.values(this.state.signIn).some(e=>(e==null?void 0:e.status)===`awaiting-device`);this.timer=setTimeout(()=>{this.refreshSignIn().finally(()=>this.scheduleSignInPoll())},e?K:q)}async syncSubscriptions(){let e=this.props.oContext,t=[];for(let n of this.accounts()){let r=D(n.provider,n.credentialId);r&&(t.push(`${e.adapterName}.${e.instance}.${r}.info.unreach`),t.push(`${e.adapterName}.${e.instance}.${r}.info.error`))}if(!(t.length===this.subscribed.length&&t.every(e=>this.subscribed.includes(e)))&&(this.unsubscribeAll(),this.subscribed=t,t.length!==0))try{await e.socket.subscribeState(t,this.onStateChange)}catch{}}unsubscribeAll(){this.subscribed.length>0&&(this.props.oContext.socket.unsubscribeState(this.subscribed,this.onStateChange),this.subscribed=[])}async loadCredentials(){try{let e=await this.props.oContext.socket.getObjectViewSystem(`config`,`system.credentials.`,`system.credentials.${G}`),t=Object.values(e||{}).filter(e=>{var t;return!!e&&((t=e.native)==null?void 0:t.type)===`ai`}).map(e=>{var t,n;let r=e._id.substring(19),i=(t=e.common)==null?void 0:t.name,a=typeof i==`string`?i:(i==null?void 0:i.en)||Object.values(i||{})[0]||r;return{id:e._id,suffix:r,name:a,icon:typeof((n=e.common)==null?void 0:n.icon)==`string`?e.common.icon:void 0}}).sort((e,t)=>e.name.localeCompare(t.name));this.setState({credentials:t,credentialsLoaded:!0,credentialsFailed:!1})}catch{this.setState({credentialsLoaded:!0,credentialsFailed:!0})}}renderServiceBadge(e,t){let n=D(e,t),r=j(this.state.serviceState[`${n}.unreach`],this.state.serviceState[`${n}.error`]);return r?a(m,{size:`small`,color:r.color,variant:`outlined`,label:v.t(r.key),title:r.title}):null}renderReason(e,t){let n=D(e,t),r=j(this.state.serviceState[`${n}.unreach`],this.state.serviceState[`${n}.error`]);return r!=null&&r.title?a(h,{variant:`caption`,sx:{display:`block`,pl:6,pb:1,opacity:.8},children:r.title}):null}renderOrphanRow(e){return u(x,{sx:{display:`flex`,alignItems:`center`,gap:1.5,py:1,borderBottom:1,borderColor:`divider`},children:[a(o,{sx:{width:28,height:28,bgcolor:`transparent`},children:a(l,{fontSize:`small`})}),u(x,{sx:{minWidth:180},children:[a(h,{children:e.name}),a(h,{variant:`caption`,sx:{color:`warning.main`},children:v.t(`aiu_keyMissing`)})]}),a(t,{checked:!0,onChange:()=>this.commit(this.accounts().filter(t=>t!==e)),slotProps:{input:{"aria-label":e.name}},sx:{ml:`auto`}})]},`orphan-${e.credentialId||e.name}`)}async refreshSignIn(){if(!this.props.alive)return;let e=await Promise.all(M.filter(e=>F(this.accounts(),e.provider)).map(async e=>{let t=this.sequence[e.provider]??0;return{provider:e.provider,answer:await this.ask(`signInStatus`,e.provider),sequence:t}}));this.unmounted||this.setState(t=>({signIn:W(t.signIn,e,this.sequence)}))}async ask(e,t,n){let r=this.props.oContext;try{let i=await H(r.socket.sendTo(`${r.adapterName}.${r.instance}`,e,{provider:t,value:n}),V(e));return i?i.error?{status:`failed`,reason:i.error}:i:null}catch{return null}}async run(e,t,n){this.sequence[t]=(this.sequence[t]??0)+1,this.setState({busy:t});let r=await this.ask(e,t,n);if(this.unmounted)return;let i=r??{status:`failed`,reason:v.t(`aiu_noAnswer`)};this.setState(e=>({busy:``,signIn:{...e.signIn,[t]:i},drafts:{...e.drafts,[t]:``}}),()=>this.scheduleSignInPoll())}accounts(){let t=e.getValue(this.props.data,`accounts`);return Array.isArray(t)?t:[]}commit(e){this.onChange(`accounts`,e)}renderThreshold(e,t,n){let r=this.state.thresholdDrafts[e];return a(f,{size:`small`,type:`number`,label:v.t(`aiu_warnAt`),value:r??String(t.warnThreshold||80),onChange:t=>{let n=t.target.value;this.setState(t=>({thresholdDrafts:{...t.thresholdDrafts,[e]:n}}))},onBlur:t=>{let r=t.target.value;this.commit(R(this.accounts(),n,r)),this.setState(t=>{let n={...t.thresholdDrafts};return delete n[e],{thresholdDrafts:n}})},slotProps:{htmlInput:{min:10,max:100,style:{width:60}},inputLabel:{shrink:!0}},sx:{ml:`auto`}},e)}async copy(e,t){let n=!1;try{if(navigator.clipboard&&window.isSecureContext)await navigator.clipboard.writeText(t),n=!0;else{let e=document.createElement(`textarea`);e.value=t,e.setAttribute(`readonly`,``),e.style.position=`fixed`,e.style.opacity=`0`,document.body.appendChild(e),e.select(),n=document.execCommand(`copy`),document.body.removeChild(e)}}catch{n=!1}this.unmounted||this.setState(t=>({copied:{...t.copied,[e]:n?`ok`:`manual`}}))}renderCopied(e){let t=this.state.copied[e];return t?a(h,{variant:`caption`,role:`status`,sx:{color:t===`ok`?`success.main`:`warning.main`},children:v.t(t===`ok`?`aiu_copied`:`aiu_copyManual`)}):null}renderSignIn(e){let t=this.state.signIn[e],i=this.state.busy===e;if(!this.props.alive)return a(c,{severity:`warning`,children:v.t(`aiu_instanceNotRunning`)});if(this.props.changed)return a(c,{severity:`info`,children:v.t(`aiu_saveFirst`)});if(!t)return a(b,{size:20});if(t.status===`signed-in`)return u(x,{sx:{display:`flex`,alignItems:`center`,gap:1,flexWrap:`wrap`},children:[a(y,{color:`success`}),a(h,{sx:{color:`success.main`},children:v.t(`aiu_signedIn`)}),a(_,{size:`small`,startIcon:a(r,{}),disabled:i,onClick:()=>void this.run(`signOut`,e),children:v.t(`aiu_signOut`)})]});if(t.status===`awaiting-device`)return u(x,{sx:{display:`flex`,flexDirection:`column`,gap:1.5},children:[a(h,{variant:`body2`,children:v.t(`aiu_deviceStep1`)}),u(x,{sx:{display:`flex`,gap:1,alignItems:`center`,flexWrap:`wrap`},children:[a(m,{label:t.userCode,sx:{fontSize:20,fontFamily:`monospace`,py:2.5,px:1}}),a(_,{size:`small`,startIcon:a(s,{}),onClick:()=>void this.copy(`${e}-code`,t.userCode),children:v.t(`aiu_copyCode`)}),this.renderCopied(`${e}-code`),a(_,{variant:`contained`,startIcon:a(n,{}),href:t.verificationUrl,target:`_blank`,rel:`noopener noreferrer`,children:v.t(`aiu_openPage`)})]}),a(c,{severity:`info`,children:v.t(`aiu_deviceWaiting`)})]});if(t.status===`awaiting-paste`){let r=t.flow===`paste-url`;return u(x,{sx:{display:`flex`,flexDirection:`column`,gap:1.5},children:[a(h,{variant:`body2`,children:v.t(r?`aiu_googleStep1`:`aiu_claudeStep1`)}),u(x,{sx:{display:`flex`,gap:1,flexWrap:`wrap`},children:[a(_,{variant:`contained`,startIcon:a(n,{}),href:t.url,target:`_blank`,rel:`noopener noreferrer`,children:v.t(`aiu_openSignIn`)}),a(_,{variant:`outlined`,startIcon:a(s,{}),onClick:()=>void this.copy(`${e}-link`,t.url),children:v.t(`aiu_copyLink`)}),this.renderCopied(`${e}-link`)]}),r?a(c,{severity:`warning`,children:v.t(`aiu_googleErrorPageHint`)}):null,a(h,{variant:`body2`,children:v.t(r?`aiu_googleStep2`:`aiu_claudeStep2`)}),u(x,{sx:{display:`flex`,gap:1,alignItems:`center`,flexWrap:`wrap`},children:[a(f,{size:`small`,label:v.t(r?`aiu_addressLabel`:`aiu_codeLabel`),value:this.state.drafts[e]??``,onChange:t=>this.setState(n=>({drafts:{...n.drafts,[e]:t.target.value}})),sx:{minWidth:340,flexGrow:1}}),a(_,{variant:`contained`,disabled:i||!(this.state.drafts[e]??``).trim(),onClick:()=>void this.run(`signInSubmit`,e,this.state.drafts[e]),children:i?a(b,{size:20}):v.t(`aiu_redeem`)})]})]})}return u(x,{sx:{display:`flex`,flexDirection:`column`,gap:1},children:[t.status===`failed`?a(c,{severity:`error`,children:t.reason}):null,a(x,{children:a(_,{variant:`contained`,startIcon:a(n,{}),disabled:i,onClick:()=>void this.run(`signInStart`,e),children:i?a(b,{size:20}):v.t(`aiu_startSignIn`)})})]})}renderSubscriptionRow(e){let n=F(this.accounts(),e.provider);return u(x,{children:[u(x,{sx:{display:`flex`,alignItems:`center`,gap:1.5,py:1,borderBottom:1,borderColor:`divider`},children:[a(o,{sx:{width:28,height:28,bgcolor:`transparent`},children:a(l,{fontSize:`small`,color:`primary`})}),u(x,{sx:{minWidth:180},children:[a(h,{children:e.label}),a(h,{variant:`caption`,sx:{opacity:.7},children:v.t(e.captionKey)})]}),n?this.renderServiceBadge(e.provider,``):null,n?this.renderThreshold(`${e.provider}-t`,n,{provider:e.provider}):null,a(t,{checked:!!n,onChange:t=>this.commit(I(this.accounts(),e.provider,t.target.checked,e.label)),slotProps:{input:{"aria-label":e.label}},sx:{ml:n?0:`auto`}})]}),n?this.renderReason(e.provider,``):null,n?a(x,{sx:{pl:6,py:1.5,borderBottom:1,borderColor:`divider`},children:this.renderSignIn(e.provider)}):null]},e.provider)}renderCredentialRow(e){var n;let r=this.accounts(),s=r.find(t=>t.credentialId===e.id),d=N(e.suffix,e.name),p=(s==null?void 0:s.provider)||(d==null?void 0:d.provider)||this.state.providerChoice[e.id]||``,m=((n=P.find(e=>e.provider===p))==null?void 0:n.needsAdminKey)??(d==null?void 0:d.needsAdminKey)??!1,g=!d&&!this.state.providerChoice[e.id]&&!s;return u(x,{sx:{borderBottom:1,borderColor:`divider`},children:[u(x,{sx:{display:`flex`,alignItems:`center`,gap:1.5,py:1},children:[a(o,{src:e.icon,sx:{width:28,height:28,bgcolor:`transparent`},children:a(l,{fontSize:`small`})}),u(x,{sx:{minWidth:180},children:[a(h,{children:e.name}),a(h,{variant:`caption`,sx:{opacity:.7},children:v.t(`aiu_storedKey`)})]}),g?a(f,{select:!0,size:`small`,label:v.t(`aiu_provider`),value:this.state.providerChoice[e.id]||``,onChange:t=>this.setState(n=>({providerChoice:{...n.providerChoice,[e.id]:t.target.value}})),sx:{minWidth:170},children:P.map(e=>a(i,{value:e.provider,children:e.label},e.provider))}):null,s?this.renderServiceBadge(s.provider,e.id):null,s?this.renderThreshold(`${e.id}-t`,s,{credentialId:e.id}):null,a(t,{checked:!!s,disabled:!p,onChange:t=>this.commit(L(r,e,p,t.target.checked)),slotProps:{input:{"aria-label":e.name}},sx:{ml:s?0:`auto`}})]}),s?this.renderReason(s.provider,e.id):null,s&&m?a(c,{severity:`info`,sx:{mb:1},children:v.t(`aiu_adminKeyHint`)}):null]},e.id)}renderCredentials(){let e=B(this.state.credentialsLoaded,this.state.credentialsFailed,this.state.credentials.length);if(e===`loading`)return a(b,{size:24,sx:{mt:1}});let t=e===`unreadable`?[]:z(this.accounts(),this.state.credentials);return u(d,{children:[this.state.credentials.map(e=>this.renderCredentialRow(e)),t.map(e=>this.renderOrphanRow(e)),e===`unreadable`?a(c,{severity:`warning`,sx:{mt:1},children:v.t(`aiu_credentialsUnreadable`)}):null,e===`empty`?a(c,{severity:`info`,sx:{mt:1},children:v.t(`aiu_noCredentials`)}):null]})}renderItem(){return a(x,{"data-testid":`aiu-config`,sx:{maxWidth:760},children:a(p,{variant:`outlined`,children:u(S,{children:[a(h,{variant:`h6`,sx:{mb:.5},children:v.t(`aiu_storedTitle`)}),a(h,{variant:`body2`,sx:{opacity:.8,mb:1},children:v.t(`aiu_storedHint`)}),M.map(e=>this.renderSubscriptionRow(e)),this.renderCredentials()]})})})}};export{A as n,J as t};
@@ -1 +1 @@
1
- import{t as e}from"./vite-preload-helper-B7qeedMF.js";var t={react:async()=>await e(()=>import(`./_virtual_mf___mfe_internal__AiUsageComponentSet__mf_owner__1__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-DzPBJWNQ.js`).then(e=>(e.yo(),e.vo)),[],import.meta.url),"react/jsx-runtime":async()=>await e(()=>import(`./_virtual_mf___mfe_internal__AiUsageComponentSet__mf_owner__1__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-DzPBJWNQ.js`).then(e=>e.Ua),[],import.meta.url),"react-dom":async()=>await e(()=>import(`./_virtual_mf___mfe_internal__AiUsageComponentSet__mf_owner__1__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-DzPBJWNQ.js`).then(e=>(e.Xa(),e.Ya)),[],import.meta.url),"react-dom/client":async()=>await e(()=>import(`./_virtual_mf___mfe_internal__AiUsageComponentSet__mf_owner__1__loadShare__react_mf_2_dom_mf_1_client__loadShare__.js-CFn_lBXc.js`).then(e=>e.n),[],import.meta.url),"@mui/material":async()=>await e(()=>import(`./_virtual_mf___mfe_internal__AiUsageComponentSet__mf_owner__1__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-DzPBJWNQ.js`).then(e=>e.Wi),[],import.meta.url),"@mui/icons-material":async()=>await e(()=>import(`./_virtual_mf___mfe_internal__AiUsageComponentSet__mf_owner__1__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-DzPBJWNQ.js`).then(e=>e.wr),[],import.meta.url),"@iobroker/gui-components":async()=>await e(()=>import(`./_virtual_mf___mfe_internal__AiUsageComponentSet__mf_owner__1__prebuild___mf_0_iobroker_mf_1_gui_mf_2_components__prebuild__-DeLUTSLT.js`),[],import.meta.url),"@iobroker/json-config":async()=>await e(()=>import(`./_virtual_mf___mfe_internal__AiUsageComponentSet__mf_owner__1__loadShare___mf_0_iobroker_mf_1_json_mf_2_config__loadShare__.js-DEdJInQG.js`).then(e=>e.n),[],import.meta.url)},n={react:{name:`react`,version:`19.2.8`,scope:[`default`],loaded:!1,eager:!1,from:`AiUsageComponentSet`,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.2.8`,scope:[`default`],loaded:!1,eager:!1,from:`AiUsageComponentSet`,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.2.8`,scope:[`default`],loaded:!1,eager:!1,from:`AiUsageComponentSet`,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}},"react-dom/client":{name:`react-dom/client`,version:`19.2.8`,scope:[`default`],loaded:!1,eager:!1,from:`AiUsageComponentSet`,canLiveRebind:!0,async get(){n[`react-dom/client`].loaded=!0;let{"react-dom/client":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.3.1`,scope:[`default`],loaded:!1,eager:!1,from:`AiUsageComponentSet`,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.3.1`,scope:[`default`],loaded:!1,eager:!1,from:`AiUsageComponentSet`,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.1.0`,scope:[`default`],loaded:!1,eager:!1,from:`AiUsageComponentSet`,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:`9.0.22`,scope:[`default`],loaded:!1,eager:!1,from:`AiUsageComponentSet`,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};
1
+ import{t as e}from"./vite-preload-helper-B7qeedMF.js";var t={react:async()=>await e(()=>import(`./_virtual_mf___mfe_internal__AiUsageComponentSet__mf_owner__1__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-D9ahEuiO.js`).then(e=>(e.bo(),e.yo)),[],import.meta.url),"react/jsx-runtime":async()=>await e(()=>import(`./_virtual_mf___mfe_internal__AiUsageComponentSet__mf_owner__1__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-D9ahEuiO.js`).then(e=>e.Wa),[],import.meta.url),"react-dom":async()=>await e(()=>import(`./_virtual_mf___mfe_internal__AiUsageComponentSet__mf_owner__1__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-D9ahEuiO.js`).then(e=>(e.Za(),e.Xa)),[],import.meta.url),"react-dom/client":async()=>await e(()=>import(`./_virtual_mf___mfe_internal__AiUsageComponentSet__mf_owner__1__loadShare__react_mf_2_dom_mf_1_client__loadShare__.js-C-VthpMf.js`).then(e=>e.n),[],import.meta.url),"@mui/material":async()=>await e(()=>import(`./_virtual_mf___mfe_internal__AiUsageComponentSet__mf_owner__1__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-D9ahEuiO.js`).then(e=>e.Wi),[],import.meta.url),"@mui/icons-material":async()=>await e(()=>import(`./_virtual_mf___mfe_internal__AiUsageComponentSet__mf_owner__1__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-D9ahEuiO.js`).then(e=>e.wr),[],import.meta.url),"@iobroker/gui-components":async()=>await e(()=>import(`./_virtual_mf___mfe_internal__AiUsageComponentSet__mf_owner__1__prebuild___mf_0_iobroker_mf_1_gui_mf_2_components__prebuild__-CGDiwFLL.js`),[],import.meta.url),"@iobroker/json-config":async()=>await e(()=>import(`./_virtual_mf___mfe_internal__AiUsageComponentSet__mf_owner__1__loadShare___mf_0_iobroker_mf_1_json_mf_2_config__loadShare__.js-efMptIcS.js`).then(e=>e.n),[],import.meta.url)},n={react:{name:`react`,version:`19.2.8`,scope:[`default`],loaded:!1,eager:!1,from:`AiUsageComponentSet`,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.2.8`,scope:[`default`],loaded:!1,eager:!1,from:`AiUsageComponentSet`,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.2.8`,scope:[`default`],loaded:!1,eager:!1,from:`AiUsageComponentSet`,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}},"react-dom/client":{name:`react-dom/client`,version:`19.2.8`,scope:[`default`],loaded:!1,eager:!1,from:`AiUsageComponentSet`,canLiveRebind:!0,async get(){n[`react-dom/client`].loaded=!0;let{"react-dom/client":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.3.1`,scope:[`default`],loaded:!1,eager:!1,from:`AiUsageComponentSet`,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.3.1`,scope:[`default`],loaded:!1,eager:!1,from:`AiUsageComponentSet`,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.1.0`,scope:[`default`],loaded:!1,eager:!1,from:`AiUsageComponentSet`,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:`9.0.22`,scope:[`default`],loaded:!1,eager:!1,from:`AiUsageComponentSet`,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};
@@ -1240,4 +1240,4 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
1240
1240
  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
1241
1241
  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
1242
1242
  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
1243
- 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`}))}z();function F9(e){return F.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},F.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)`}),F.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)`}),F.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`))}z();var nAo={headerID:{fontWeight:`bold`,fontStyle:`italic`},radio:{display:`inline-block`},dialogPaper:{height:`calc(100% - 96px)`}},I9=class extends F.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=U3.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?F.createElement(o1,{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 F.createElement(Ej,{onClose:()=>{},maxWidth:`md`,fullWidth:!0,sx:{"& .MuiDialog-paper":nAo.dialogPaper},open:!0,"aria-labelledby":`cron-dialog-title`},this.renderWarningDialog(),F.createElement(Aj,{id:`cron-dialog-title`},this.props.title||Q.t(`ra_Define schedule...`)),F.createElement(Oj,{style:{height:`100%`,overflow:`hidden`}},F.createElement(U3,{cronExpression:this.state.cron,onChange:e=>this.setState({cron:e}),language:Q.getLanguage()})),F.createElement(Dj,null,!!this.props.clearButton&&F.createElement(yj,{color:`grey`,variant:`contained`,onClick:()=>this.handleClear(),startIcon:F.createElement(pQ,null)},this.props.clear||Q.t(`ra_Clear`)),F.createElement(yj,{variant:`contained`,onClick:()=>this.handleOk(),color:`primary`,startIcon:F.createElement(tQ,null)},this.props.ok||Q.t(`ra_Ok`)),F.createElement(yj,{color:`grey`,variant:`contained`,onClick:()=>this.handleCancel(),startIcon:F.createElement(eQ,null)},this.props.cancel||Q.t(`ra_Cancel`))))}};z();var rAo={dialogPaper:{height:`calc(100% - 96px)`}},L9=class extends F.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 F.createElement(Ej,{onClose:()=>{},maxWidth:`md`,fullWidth:!0,sx:{"& .MuiDialog-paper":rAo.dialogPaper},open:!0,"aria-labelledby":`cron-dialog-title`},F.createElement(Aj,{id:`cron-dialog-title`},this.props.title||Q.t(`ra_Define schedule...`)),F.createElement(Oj,{style:{height:`100%`,overflow:`hidden`}},this.props.simple&&this.props.complex||!this.props.simple&&!this.props.complex?F.createElement(`div`,null,!this.props.simple&&!this.props.complex&&!this.props.noWizard&&F.createElement(F.Fragment,null,F.createElement(tM,{key:`wizard`,checked:this.state.mode===`wizard`,onChange:()=>this.setMode(`wizard`)}),F.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)&&F.createElement(F.Fragment,null,F.createElement(tM,{key:`simple`,checked:this.state.mode===`simple`,onChange:()=>this.setMode(`simple`)}),F.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)&&F.createElement(F.Fragment,null,F.createElement(tM,{key:`complex`,checked:this.state.mode===`complex`,onChange:()=>this.setMode(`complex`)}),F.createElement(`label`,{onClick:()=>this.setMode(`complex`),style:this.state.mode===`complex`?{}:{color:`lightgrey`}},Q.t(`sc_cron`)))):null,this.state.mode===`simple`&&F.createElement(j9,{cronExpression:this.state.cron,onChange:e=>this.setState({cron:e}),language:Q.getLanguage()}),this.state.mode===`wizard`&&F.createElement(V7,{theme:this.props.theme,schedule:this.state.cron,onChange:e=>this.setState({cron:e})}),this.state.mode===`complex`&&F.createElement(U3,{cronExpression:this.state.cron,onChange:e=>this.setState({cron:e}),language:Q.getLanguage()})),F.createElement(Dj,null,F.createElement(yj,{variant:`contained`,onClick:()=>this.handleOk(),color:`primary`,startIcon:F.createElement(tQ,null)},this.props.ok||Q.t(`ra_Ok`)),F.createElement(yj,{variant:`contained`,onClick:()=>this.handleCancel(),color:`grey`,startIcon:F.createElement(eQ,null)},this.props.cancel||Q.t(`ra_Cancel`))))}};z();var R9=class extends Ne{handleOk(){this.props.onClose&&this.props.onClose()}render(){return F.createElement(Ej,{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`},F.createElement(Aj,{id:`ar_dialog_message_title`},this.props.title||Q.t(`ra_Message`)),F.createElement(Oj,null,F.createElement(kj,{id:`ar_dialog_message_description`},F.createElement(`span`,{style:{marginRight:this.props.icon?8:0}},this.props.icon||null),this.props.text)),F.createElement(Dj,null,F.createElement(yj,{id:`ar_dialog_message_ok`,variant:`contained`,onClick:()=>this.handleOk(),color:`primary`,autoFocus:!0,startIcon:F.createElement(rQ,null)},this.props.ok||Q.t(`ra_Close`))))}};z();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 F.Component{constructor(e){super(e),Y(this,`dialogName`,void 0),Y(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?[F.createElement(`span`,{key:`selected`},Q.t(`ra_Selected`),`\xA0`),F.createElement(`span`,{key:`id`,style:z9.headerID},this.state.selected)]:[F.createElement(`span`,{key:`selected`},Q.t(`ra_Selected`),`\xA0`),F.createElement(`span`,{key:`id`,style:z9.headerID},Q.t(`%s items`,this.state.selected.length))]:this.props.title||Q.t(`ra_Please select file...`),F.createElement(Ej,{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`},F.createElement(Aj,{id:`ar_dialog_selectfile_title`,sx:{"&.MuiDialogTitle-root":z9.titleRoot}},e),F.createElement(Oj,{style:{...z9.content,...z9.contentMobile}},F.createElement(d8,{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})),F.createElement(Dj,null,F.createElement(yj,{variant:`contained`,onClick:()=>this.handleOk(),startIcon:F.createElement(tQ,null),disabled:!this.state.selected.length,color:`primary`},this.props.ok||Q.t(`ra_Ok`)),F.createElement(yj,{color:`grey`,variant:`contained`,onClick:()=>this.handleCancel(),startIcon:F.createElement(eQ,null)},this.props.cancel||Q.t(`ra_Cancel`))))}};z();var iAo={dialogPaper:{height:`calc(100% - 96px)`}},V9=class extends F.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 F.createElement(Ej,{onClose:()=>{},maxWidth:`md`,fullWidth:!0,sx:{"& .MuiDialog-paper":iAo.dialogPaper},open:!0,"aria-labelledby":`cron-dialog-title`},F.createElement(Aj,{id:`cron-dialog-title`},this.props.title||Q.t(`ra_Define CRON...`)),F.createElement(Oj,{style:{height:`100%`,overflow:`hidden`}},F.createElement(j9,{cronExpression:this.state.cron,onChange:e=>this.setState({cron:e}),language:Q.getLanguage()})),F.createElement(Dj,null,F.createElement(yj,{variant:`contained`,disabled:!this.state.cron||this.state.cron.includes(`_`),onClick:()=>this.handleOk(),color:`primary`,startIcon:F.createElement(tQ,null)},this.props.ok||Q.t(`ra_Ok`)),F.createElement(yj,{variant:`contained`,onClick:()=>this.handleCancel(),color:`grey`,startIcon:F.createElement(eQ,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:()=>eN,CardTitle:()=>K7,Cleaner:()=>F8,ColorPicker:()=>L3,ComplexCron:()=>U3,ComplexCronDialog:()=>I9,Confirm:()=>o1,Connection:()=>ZM,Cron:()=>L9,CustomModal:()=>G3,DeviceTypeIcon:()=>f5,DeviceTypeSelector:()=>m5,DialogComplexCron:()=>I9,DialogConfirm:()=>o1,DialogCron:()=>L9,DialogError:()=>s1,DialogMessage:()=>R9,DialogSelectFile:()=>B9,DialogSelectID:()=>h9,DialogSimpleCron:()=>V9,DialogTextInput:()=>D6,DoorClosed:()=>I8,DoorOpened:()=>L8,ERRORS:()=>JM,EXTENSIONS:()=>Y6,Error:()=>s1,FileBrowser:()=>d8,FileBrowserClass:()=>u8,FileViewer:()=>Q6,FileViewerClass:()=>Z6,FireOff:()=>R8,FireOn:()=>z8,FloodOff:()=>B8,FloodOn:()=>V8,Gate:()=>H8,GenericApp:()=>l1,HeatValve:()=>U8,Home:()=>W8,Humidity:()=>G8,I18n:()=>Q,ITEM_IMAGES:()=>p7,Icon:()=>q6,IconAdapter:()=>n7,IconAlias:()=>U6,IconButtonImage:()=>M9,IconChannel:()=>r7,IconClearFilter:()=>g7,IconClosed:()=>k6,IconCopy:()=>b7,IconDevice:()=>i7,IconDocument:()=>x7,IconDocumentReadOnly:()=>S7,IconExpert:()=>O6,IconFx:()=>N9,IconHome:()=>K8,IconInstance:()=>a7,IconLogout:()=>P9,IconNoIcon:()=>j6,IconOpen:()=>A6,IconPicker:()=>m8,IconSelector:()=>f8,IconState:()=>o7,IconVacuum:()=>F9,Image:()=>h8,InfoBox:()=>M7,InfoRow:()=>q7,Jalousie:()=>q8,Loader:()=>J$,LoaderHA:()=>q$,LoaderMV:()=>H$,LoaderNW:()=>U$,LoaderPT:()=>G$,LoaderVendor:()=>W$,Logo:()=>_5,MDUtils:()=>v5,MODERN_DARK:()=>DM,MODERN_LIGHT:()=>OM,Material:()=>J8,Message:()=>R9,MotionOff:()=>Y8,MotionOn:()=>X8,ObjectBrowser:()=>j7,ObjectBrowserClass:()=>A7,PERMISSION_ERROR:()=>YM,PROGRESS:()=>qM,PushButton:()=>Z8,RGB:()=>$8,RepairExpert:()=>Q8,Router:()=>Y$,STATES_NAME_ICONS:()=>g5,SaveCloseButtons:()=>i1,Schedule:()=>V7,ScrollbarStyles:()=>H7,SelectFile:()=>B9,SelectID:()=>h9,SelectWithIcon:()=>W7,SimpleCron:()=>j9,SimpleCronDialog:()=>V9,Socket:()=>e5,StatCard:()=>G7,TabContainer:()=>b5,TabContent:()=>S5,TabHeader:()=>C5,TableResize:()=>J7,TextInput:()=>D6,TextWithIcon:()=>X7,Theme:()=>BM,Thermometer:()=>t5,ThermometerSimple:()=>n5,Thermostat:()=>r5,ToggleThemeMenu:()=>Z7,TreeTable:()=>b9,UploadImage:()=>w9,Utils:()=>n1,Valve:()=>i5,WindowClosed:()=>a5,WindowOpened:()=>o5,WindowTilted:()=>s5,convertCronToText:()=>z3,copy:()=>Z$,cron2state:()=>A9,dictionary:()=>c1,extendDeviceTypeTranslation:()=>l5,getAttrInObject:()=>W9,getModernTheme:()=>MM,getSelectIdIcon:()=>G6,getSelectIdIconFromObjects:()=>R5,getSystemIcon:()=>W6,iobUriParse:()=>U9,iobUriRead:()=>K9,iobUriToString:()=>H9,moduleFederationShared:()=>J9,pattern2RegEx:()=>N5,printPrompt:()=>V$,setAttrInObject:()=>G9,withWidth:()=>E6}),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 aAo=(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}},oAo=Symbol.for(`module-federation.shared-cache-listeners`),Q9=Symbol.for(`module-federation.shared-cache-owners`),sAo=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},cAo=(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]:sAo(e)[t.canonical]=r;let s=(i=e[oAo])==null?void 0:i[t.canonical];if(s)for(let e of s)e(n);return n},lAo=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=aAo(Z9.share,{canonical:`default:@iobroker/gui-components`,aliases:[`@iobroker/gui-components`]});$9===void 0&&($9=lAo(Y9),cAo(Z9.share,{canonical:`default:@iobroker/gui-components`,aliases:[`@iobroker/gui-components`]},$9,`AiUsageComponentSet`)),(()=>{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{f5 as $,He as $a,Av as $i,JQ as $n,bM as $r,c1 as $t,V7 as A,$s as Aa,Uj as Ai,hQ as An,eN as Ar,f8 as At,a7 as B,Oi as Ba,nM as Bi,DQ as Bn,sM as Br,j6 as Bt,X7 as C,Eu as Ca,Lj as Ci,ZZ as Cn,C$ as Cr,z8 as Ct,G7 as D,Zc as Da,Bj as Di,aQ as Dn,wZ as Dr,F8 as Dt,q7 as E,al as Ea,zj as Ei,iQ as En,TZ as Er,I8 as Et,x7 as F,To as Fa,Qj as Fi,xQ as Fn,BM as Fr,Z6 as Ft,N5 as G,vn as Ga,kS as Gi,IQ as Gn,fM as Gr,E6 as Gt,r7 as H,V as Ha,hj as Hi,NQ as Hn,lM as Hr,k6 as Ht,b7 as I,So as Ia,$j as Ii,SQ as In,DM as Ir,q6 as It,b5 as J,hn as Ja,Ry as Ji,HQ as Jn,hM as Jr,U3 as Jt,C5 as K,Zt as Ka,hb as Ki,RQ as Kn,pM as Kr,S6 as Kt,g7 as L,xo as La,mj as Li,CQ as Ln,OM as Lr,G6 as Lt,j7 as M,ws as Ma,Yj as Mi,vQ as Mn,JM as Mr,u8 as Mt,A7 as N,gs as Na,Xj as Ni,yQ as Nn,YM as Nr,Y6 as Nt,W7 as O,Xc as Oa,Vj as Oi,cQ as On,CZ as Or,h8 as Ot,S7 as P,Ro as Pa,Zj as Pi,bQ as Pn,qM as Pr,Q6 as Pt,m5 as Q,Me as Qa,Uv as Qi,RZ as Qn,yM as Qr,l1 as Qt,p7 as R,H as Ra,eM as Ri,wQ as Rn,MM as Rr,W6 as Rt,Z7 as S,Au as Sa,Ij as Si,IZ as Sn,S$ as Sr,B8 as St,K7 as T,cl as Ta,fj as Ti,rQ as Tn,EZ as Tr,L8 as Tt,n7 as U,pi as Ua,aM as Ui,PQ as Un,uM as Ur,O6 as Ut,i7 as V,B as Va,rM as Vi,OQ as Vn,cM as Vr,A6 as Vt,R5 as W,fi as Wa,jS as Wi,FQ as Wn,dM as Wr,D6 as Wt,_5 as X,Rt as Xa,ry as Xi,WQ as Xn,_M as Xr,L3 as Xt,v5 as Y,bt as Ya,sy as Yi,UQ as Yn,gM as Yr,z3 as Yt,g5 as Z,F as Za,Wv as Zi,GQ as Zn,vM as Zr,x3 as Zt,j9 as _,cd as _a,dj as _i,F$ as _n,z as _o,g$ as _r,G8 as _t,K9 as a,Y_ as aa,bj as ai,Z$ as an,Je as ao,e$ as ar,r5 as at,b9 as b,Bu as ba,Nj as bi,R$ as bn,FZ as br,H8 as bt,V9 as c,eh as ca,Cj as ci,q$ as cn,et as co,r$ as cr,e5 as ct,L9 as d,Kp as da,Tj as di,U$ as dn,ot as do,c$ as dr,Z8 as dt,Tv as ea,xM as ei,s1 as en,Ue as eo,XQ as er,l5 as et,I9 as f,Wd as fa,Ej as fi,H$ as fn,lt as fo,l$ as fr,X8 as ft,M9 as g,Y as ga,Aj as gi,P$ as gn,ye as go,m$ as gr,K8 as gt,N9 as h,vd as ha,kj as hi,A$ as hn,ft as ho,f$ as hr,q8 as ht,U9 as i,Z_ as ia,yj as ii,Q as in,Ke as io,QQ as ir,i5 as it,M7 as j,Vs as ja,Jj as ji,_Q as jn,ZM as jr,d8 as jt,H7 as k,Yc as ka,Hj as ki,pQ as kn,SZ as kr,m8 as kt,B9 as l,ym as la,wj as li,G$ as ln,rt as lo,o$ as lr,$8 as lt,P9 as m,Ed as ma,Oj as mi,E$ as mn,R as mo,d$ as mr,J8 as mt,J9 as n,rv as na,_j as ni,i1 as nn,Ge as no,BZ as nr,o5 as nt,H9 as o,I_ as oa,xj as oi,Y$ as on,Ne as oo,t$ as or,n5 as ot,F9 as p,Rd as pa,Dj as pi,V$ as pn,dt as po,u$ as pr,Y8 as pt,S5 as q,zt as qa,Yy as qi,BQ as qn,mM as qr,G3 as qt,W9 as r,$_ as ra,TM as ri,n1 as rn,L as ro,VZ as rr,a5 as rt,G9 as s,Qh as sa,Sj as si,J$ as sn,$e as so,n$ as sr,t5 as st,Y9 as t,Sv as ta,SM as ti,o1 as tn,We as to,ZQ as tr,s5 as tt,R9 as u,om as ua,uj as ui,W$ as un,I as uo,s$ as ur,Q8 as ut,A9 as v,ed as va,jj as vi,I$ as vn,s as vo,_$ as vr,W8 as vt,J7 as w,W as wa,Rj as wi,tQ as wn,OZ as wr,R8 as wt,h9 as x,q as xa,Pj as xi,z$ as xn,x$ as xr,V8 as xt,w9 as y,qu as ya,Mj as yi,L$ as yn,ve as yo,v$ as yr,U8 as yt,o7 as z,ya as za,tM as zi,TQ as zn,lj as zr,U6 as zt};
1243
+ 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`}))}z();function F9(e){return F.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},F.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)`}),F.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)`}),F.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`))}z();var nAo={headerID:{fontWeight:`bold`,fontStyle:`italic`},radio:{display:`inline-block`},dialogPaper:{height:`calc(100% - 96px)`}},I9=class extends F.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=U3.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?F.createElement(o1,{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 F.createElement(Ej,{onClose:()=>{},maxWidth:`md`,fullWidth:!0,sx:{"& .MuiDialog-paper":nAo.dialogPaper},open:!0,"aria-labelledby":`cron-dialog-title`},this.renderWarningDialog(),F.createElement(Aj,{id:`cron-dialog-title`},this.props.title||Q.t(`ra_Define schedule...`)),F.createElement(Oj,{style:{height:`100%`,overflow:`hidden`}},F.createElement(U3,{cronExpression:this.state.cron,onChange:e=>this.setState({cron:e}),language:Q.getLanguage()})),F.createElement(Dj,null,!!this.props.clearButton&&F.createElement(yj,{color:`grey`,variant:`contained`,onClick:()=>this.handleClear(),startIcon:F.createElement(pQ,null)},this.props.clear||Q.t(`ra_Clear`)),F.createElement(yj,{variant:`contained`,onClick:()=>this.handleOk(),color:`primary`,startIcon:F.createElement(tQ,null)},this.props.ok||Q.t(`ra_Ok`)),F.createElement(yj,{color:`grey`,variant:`contained`,onClick:()=>this.handleCancel(),startIcon:F.createElement(eQ,null)},this.props.cancel||Q.t(`ra_Cancel`))))}};z();var rAo={dialogPaper:{height:`calc(100% - 96px)`}},L9=class extends F.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 F.createElement(Ej,{onClose:()=>{},maxWidth:`md`,fullWidth:!0,sx:{"& .MuiDialog-paper":rAo.dialogPaper},open:!0,"aria-labelledby":`cron-dialog-title`},F.createElement(Aj,{id:`cron-dialog-title`},this.props.title||Q.t(`ra_Define schedule...`)),F.createElement(Oj,{style:{height:`100%`,overflow:`hidden`}},this.props.simple&&this.props.complex||!this.props.simple&&!this.props.complex?F.createElement(`div`,null,!this.props.simple&&!this.props.complex&&!this.props.noWizard&&F.createElement(F.Fragment,null,F.createElement(tM,{key:`wizard`,checked:this.state.mode===`wizard`,onChange:()=>this.setMode(`wizard`)}),F.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)&&F.createElement(F.Fragment,null,F.createElement(tM,{key:`simple`,checked:this.state.mode===`simple`,onChange:()=>this.setMode(`simple`)}),F.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)&&F.createElement(F.Fragment,null,F.createElement(tM,{key:`complex`,checked:this.state.mode===`complex`,onChange:()=>this.setMode(`complex`)}),F.createElement(`label`,{onClick:()=>this.setMode(`complex`),style:this.state.mode===`complex`?{}:{color:`lightgrey`}},Q.t(`sc_cron`)))):null,this.state.mode===`simple`&&F.createElement(j9,{cronExpression:this.state.cron,onChange:e=>this.setState({cron:e}),language:Q.getLanguage()}),this.state.mode===`wizard`&&F.createElement(V7,{theme:this.props.theme,schedule:this.state.cron,onChange:e=>this.setState({cron:e})}),this.state.mode===`complex`&&F.createElement(U3,{cronExpression:this.state.cron,onChange:e=>this.setState({cron:e}),language:Q.getLanguage()})),F.createElement(Dj,null,F.createElement(yj,{variant:`contained`,onClick:()=>this.handleOk(),color:`primary`,startIcon:F.createElement(tQ,null)},this.props.ok||Q.t(`ra_Ok`)),F.createElement(yj,{variant:`contained`,onClick:()=>this.handleCancel(),color:`grey`,startIcon:F.createElement(eQ,null)},this.props.cancel||Q.t(`ra_Cancel`))))}};z();var R9=class extends Ne{handleOk(){this.props.onClose&&this.props.onClose()}render(){return F.createElement(Ej,{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`},F.createElement(Aj,{id:`ar_dialog_message_title`},this.props.title||Q.t(`ra_Message`)),F.createElement(Oj,null,F.createElement(kj,{id:`ar_dialog_message_description`},F.createElement(`span`,{style:{marginRight:this.props.icon?8:0}},this.props.icon||null),this.props.text)),F.createElement(Dj,null,F.createElement(yj,{id:`ar_dialog_message_ok`,variant:`contained`,onClick:()=>this.handleOk(),color:`primary`,autoFocus:!0,startIcon:F.createElement(rQ,null)},this.props.ok||Q.t(`ra_Close`))))}};z();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 F.Component{constructor(e){super(e),Y(this,`dialogName`,void 0),Y(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?[F.createElement(`span`,{key:`selected`},Q.t(`ra_Selected`),`\xA0`),F.createElement(`span`,{key:`id`,style:z9.headerID},this.state.selected)]:[F.createElement(`span`,{key:`selected`},Q.t(`ra_Selected`),`\xA0`),F.createElement(`span`,{key:`id`,style:z9.headerID},Q.t(`%s items`,this.state.selected.length))]:this.props.title||Q.t(`ra_Please select file...`),F.createElement(Ej,{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`},F.createElement(Aj,{id:`ar_dialog_selectfile_title`,sx:{"&.MuiDialogTitle-root":z9.titleRoot}},e),F.createElement(Oj,{style:{...z9.content,...z9.contentMobile}},F.createElement(d8,{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})),F.createElement(Dj,null,F.createElement(yj,{variant:`contained`,onClick:()=>this.handleOk(),startIcon:F.createElement(tQ,null),disabled:!this.state.selected.length,color:`primary`},this.props.ok||Q.t(`ra_Ok`)),F.createElement(yj,{color:`grey`,variant:`contained`,onClick:()=>this.handleCancel(),startIcon:F.createElement(eQ,null)},this.props.cancel||Q.t(`ra_Cancel`))))}};z();var iAo={dialogPaper:{height:`calc(100% - 96px)`}},V9=class extends F.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 F.createElement(Ej,{onClose:()=>{},maxWidth:`md`,fullWidth:!0,sx:{"& .MuiDialog-paper":iAo.dialogPaper},open:!0,"aria-labelledby":`cron-dialog-title`},F.createElement(Aj,{id:`cron-dialog-title`},this.props.title||Q.t(`ra_Define CRON...`)),F.createElement(Oj,{style:{height:`100%`,overflow:`hidden`}},F.createElement(j9,{cronExpression:this.state.cron,onChange:e=>this.setState({cron:e}),language:Q.getLanguage()})),F.createElement(Dj,null,F.createElement(yj,{variant:`contained`,disabled:!this.state.cron||this.state.cron.includes(`_`),onClick:()=>this.handleOk(),color:`primary`,startIcon:F.createElement(tQ,null)},this.props.ok||Q.t(`ra_Ok`)),F.createElement(yj,{variant:`contained`,onClick:()=>this.handleCancel(),color:`grey`,startIcon:F.createElement(eQ,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:()=>eN,CardTitle:()=>K7,Cleaner:()=>F8,ColorPicker:()=>L3,ComplexCron:()=>U3,ComplexCronDialog:()=>I9,Confirm:()=>o1,Connection:()=>ZM,Cron:()=>L9,CustomModal:()=>G3,DeviceTypeIcon:()=>f5,DeviceTypeSelector:()=>m5,DialogComplexCron:()=>I9,DialogConfirm:()=>o1,DialogCron:()=>L9,DialogError:()=>s1,DialogMessage:()=>R9,DialogSelectFile:()=>B9,DialogSelectID:()=>h9,DialogSimpleCron:()=>V9,DialogTextInput:()=>D6,DoorClosed:()=>I8,DoorOpened:()=>L8,ERRORS:()=>JM,EXTENSIONS:()=>Y6,Error:()=>s1,FileBrowser:()=>d8,FileBrowserClass:()=>u8,FileViewer:()=>Q6,FileViewerClass:()=>Z6,FireOff:()=>R8,FireOn:()=>z8,FloodOff:()=>B8,FloodOn:()=>V8,Gate:()=>H8,GenericApp:()=>l1,HeatValve:()=>U8,Home:()=>W8,Humidity:()=>G8,I18n:()=>Q,ITEM_IMAGES:()=>p7,Icon:()=>q6,IconAdapter:()=>n7,IconAlias:()=>U6,IconButtonImage:()=>M9,IconChannel:()=>r7,IconClearFilter:()=>g7,IconClosed:()=>k6,IconCopy:()=>b7,IconDevice:()=>i7,IconDocument:()=>x7,IconDocumentReadOnly:()=>S7,IconExpert:()=>O6,IconFx:()=>N9,IconHome:()=>K8,IconInstance:()=>a7,IconLogout:()=>P9,IconNoIcon:()=>j6,IconOpen:()=>A6,IconPicker:()=>m8,IconSelector:()=>f8,IconState:()=>o7,IconVacuum:()=>F9,Image:()=>h8,InfoBox:()=>M7,InfoRow:()=>q7,Jalousie:()=>q8,Loader:()=>J$,LoaderHA:()=>q$,LoaderMV:()=>H$,LoaderNW:()=>U$,LoaderPT:()=>G$,LoaderVendor:()=>W$,Logo:()=>_5,MDUtils:()=>v5,MODERN_DARK:()=>DM,MODERN_LIGHT:()=>OM,Material:()=>J8,Message:()=>R9,MotionOff:()=>Y8,MotionOn:()=>X8,ObjectBrowser:()=>j7,ObjectBrowserClass:()=>A7,PERMISSION_ERROR:()=>YM,PROGRESS:()=>qM,PushButton:()=>Z8,RGB:()=>$8,RepairExpert:()=>Q8,Router:()=>Y$,STATES_NAME_ICONS:()=>g5,SaveCloseButtons:()=>i1,Schedule:()=>V7,ScrollbarStyles:()=>H7,SelectFile:()=>B9,SelectID:()=>h9,SelectWithIcon:()=>W7,SimpleCron:()=>j9,SimpleCronDialog:()=>V9,Socket:()=>e5,StatCard:()=>G7,TabContainer:()=>b5,TabContent:()=>S5,TabHeader:()=>C5,TableResize:()=>J7,TextInput:()=>D6,TextWithIcon:()=>X7,Theme:()=>BM,Thermometer:()=>t5,ThermometerSimple:()=>n5,Thermostat:()=>r5,ToggleThemeMenu:()=>Z7,TreeTable:()=>b9,UploadImage:()=>w9,Utils:()=>n1,Valve:()=>i5,WindowClosed:()=>a5,WindowOpened:()=>o5,WindowTilted:()=>s5,convertCronToText:()=>z3,copy:()=>Z$,cron2state:()=>A9,dictionary:()=>c1,extendDeviceTypeTranslation:()=>l5,getAttrInObject:()=>W9,getModernTheme:()=>MM,getSelectIdIcon:()=>G6,getSelectIdIconFromObjects:()=>R5,getSystemIcon:()=>W6,iobUriParse:()=>U9,iobUriRead:()=>K9,iobUriToString:()=>H9,moduleFederationShared:()=>J9,pattern2RegEx:()=>N5,printPrompt:()=>V$,setAttrInObject:()=>G9,withWidth:()=>E6}),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 aAo=(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}},oAo=Symbol.for(`module-federation.shared-cache-listeners`),Q9=Symbol.for(`module-federation.shared-cache-owners`),sAo=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},cAo=(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]:sAo(e)[t.canonical]=r;let s=(i=e[oAo])==null?void 0:i[t.canonical];if(s)for(let e of s)e(n);return n},lAo=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=aAo(Z9.share,{canonical:`default:@iobroker/gui-components`,aliases:[`@iobroker/gui-components`]});$9===void 0&&($9=lAo(Y9),cAo(Z9.share,{canonical:`default:@iobroker/gui-components`,aliases:[`@iobroker/gui-components`]},$9,`AiUsageComponentSet`)),(()=>{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{f5 as $,Me as $a,Av as $i,JQ as $n,bM as $r,c1 as $t,V7 as A,$s as Aa,Uj as Ai,hQ as An,eN as Ar,f8 as At,a7 as B,Oi as Ba,nM as Bi,DQ as Bn,sM as Br,j6 as Bt,X7 as C,Eu as Ca,Lj as Ci,ZZ as Cn,C$ as Cr,z8 as Ct,G7 as D,Zc as Da,Bj as Di,aQ as Dn,wZ as Dr,F8 as Dt,q7 as E,al as Ea,zj as Ei,iQ as En,TZ as Er,I8 as Et,x7 as F,To as Fa,Qj as Fi,xQ as Fn,BM as Fr,Z6 as Ft,N5 as G,fi as Ga,kS as Gi,IQ as Gn,fM as Gr,E6 as Gt,r7 as H,B as Ha,hj as Hi,NQ as Hn,lM as Hr,k6 as Ht,b7 as I,So as Ia,$j as Ii,SQ as In,DM as Ir,q6 as It,b5 as J,zt as Ja,Ry as Ji,HQ as Jn,hM as Jr,U3 as Jt,C5 as K,vn as Ka,hb as Ki,RQ as Kn,pM as Kr,S6 as Kt,g7 as L,xo as La,mj as Li,CQ as Ln,OM as Lr,G6 as Lt,j7 as M,ws as Ma,Yj as Mi,vQ as Mn,JM as Mr,u8 as Mt,A7 as N,gs as Na,Xj as Ni,yQ as Nn,YM as Nr,Y6 as Nt,W7 as O,Xc as Oa,Vj as Oi,cQ as On,CZ as Or,h8 as Ot,S7 as P,Ro as Pa,Zj as Pi,bQ as Pn,qM as Pr,Q6 as Pt,m5 as Q,F as Qa,Uv as Qi,RZ as Qn,yM as Qr,l1 as Qt,p7 as R,H as Ra,eM as Ri,wQ as Rn,MM as Rr,W6 as Rt,Z7 as S,Au as Sa,Ij as Si,IZ as Sn,S$ as Sr,B8 as St,K7 as T,cl as Ta,fj as Ti,rQ as Tn,EZ as Tr,L8 as Tt,n7 as U,V as Ua,aM as Ui,PQ as Un,uM as Ur,O6 as Ut,i7 as V,xi as Va,rM as Vi,OQ as Vn,cM as Vr,A6 as Vt,R5 as W,pi as Wa,jS as Wi,FQ as Wn,dM as Wr,D6 as Wt,_5 as X,bt as Xa,ry as Xi,WQ as Xn,_M as Xr,L3 as Xt,v5 as Y,hn as Ya,sy as Yi,UQ as Yn,gM as Yr,z3 as Yt,g5 as Z,Rt as Za,Wv as Zi,GQ as Zn,vM as Zr,x3 as Zt,j9 as _,cd as _a,dj as _i,F$ as _n,ye as _o,g$ as _r,G8 as _t,K9 as a,Y_ as aa,bj as ai,Z$ as an,Ke as ao,e$ as ar,r5 as at,b9 as b,Bu as ba,Nj as bi,R$ as bn,ve as bo,FZ as br,H8 as bt,V9 as c,eh as ca,Cj as ci,q$ as cn,$e as co,r$ as cr,e5 as ct,L9 as d,Kp as da,Tj as di,U$ as dn,I as do,c$ as dr,Z8 as dt,Tv as ea,xM as ei,s1 as en,He as eo,XQ as er,l5 as et,I9 as f,Wd as fa,Ej as fi,H$ as fn,ot as fo,l$ as fr,X8 as ft,M9 as g,Y as ga,Aj as gi,P$ as gn,ft as go,m$ as gr,K8 as gt,N9 as h,vd as ha,kj as hi,A$ as hn,R as ho,f$ as hr,q8 as ht,U9 as i,Z_ as ia,yj as ii,Q as in,L as io,QQ as ir,i5 as it,M7 as j,Vs as ja,Jj as ji,_Q as jn,ZM as jr,d8 as jt,H7 as k,Yc as ka,Hj as ki,pQ as kn,SZ as kr,m8 as kt,B9 as l,ym as la,wj as li,G$ as ln,et as lo,o$ as lr,$8 as lt,P9 as m,Ed as ma,Oj as mi,E$ as mn,dt as mo,d$ as mr,J8 as mt,J9 as n,rv as na,_j as ni,i1 as nn,We as no,BZ as nr,o5 as nt,H9 as o,I_ as oa,xj as oi,Y$ as on,Je as oo,t$ as or,n5 as ot,F9 as p,Rd as pa,Dj as pi,V$ as pn,lt as po,u$ as pr,Y8 as pt,S5 as q,Zt as qa,Yy as qi,BQ as qn,mM as qr,G3 as qt,W9 as r,$_ as ra,TM as ri,n1 as rn,Ge as ro,VZ as rr,a5 as rt,G9 as s,Qh as sa,Sj as si,J$ as sn,Ne as so,n$ as sr,t5 as st,Y9 as t,Sv as ta,SM as ti,o1 as tn,Ue as to,ZQ as tr,s5 as tt,R9 as u,om as ua,uj as ui,W$ as un,rt as uo,s$ as ur,Q8 as ut,A9 as v,ed as va,jj as vi,I$ as vn,z as vo,_$ as vr,W8 as vt,J7 as w,W as wa,Rj as wi,tQ as wn,OZ as wr,R8 as wt,h9 as x,q as xa,Pj as xi,z$ as xn,x$ as xr,V8 as xt,w9 as y,qu as ya,Mj as yi,L$ as yn,s as yo,v$ as yr,U8 as yt,o7 as z,ya as za,tM as zi,TQ as zn,lj as zr,U6 as zt};