iobroker.eos-admin 7.9.33 → 7.9.34
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/adminWww/assets/Adapters-B5_jQ7DE.js +2 -2
- package/adminWww/assets/bootstrap-COulQZax.js +1 -1
- package/adminWww/index.html +6 -5
- package/adminWww/js/eos-branding.js +74 -0
- package/adminWww/js/eos-hard-logout.js +163 -0
- package/build/lib/web.js +75 -23
- package/docs/NEXOWATT_EOS_UI_V34_UPDATE_HARD_LOGOUT_DE.md +23 -0
- package/io-package.json +8 -8
- package/package.json +1 -1
- package/tools/nexowatt-validate-package.cjs +14 -0
|
@@ -293,7 +293,7 @@ Możesz dowolnie konfigurować adaptery używane do powiadomień - takie jak Tel
|
|
|
293
293
|
|
|
294
294
|
举个简单的例子: 如果可用存储空间出现问题,您就会立即收到通知,而不用再纠结自动化系统的某些部分为何不再正常工作。
|
|
295
295
|
|
|
296
|
-
您可以根据消息类别自由配置用于通知的适配器(如 Telegram)。如果您最喜欢的消息适配器崩溃了,您也可以配置一个替代消息适配器来接管。`,Notifications,"notifications wizard category":"此类别中的适配器允许您收到系统中的事件通知并向您发送个性化消息。",Nov,November,"Now the expert mode will be active only during this browser session.":"现在,专家模式将仅在此浏览器会话期间处于活动状态。","Now the expert mode will be deactivated only during this browser session.":"现在,仅在此浏览器会话期间将停用专家模式。",NPM,"npm error":"npm错误",npm_warning,number,"Number of files":"文件数",object,'Object "<b>%s</b>" does not exists. Update the page.':'设备"<b>%s</b>"不存在。更新页面。',"Object data":"对象数据","Object does not exist!":"对象不存在!","Object may not be deleted":"设备可能无法删除","object permissions":"设备权限","Object rights":"设备权限","object(s)":"对象",Objects:Objects$1,Oct,October,of,Offline,ok,Ok,Oman,'On Windows first please call in the start menu under "ioBroker" the command line of the relevant ioBroker instance. The correct directory is then set automatically. On Linux or macOS please go to the ioBroker directory.':"在Windows上,请首先在ioBroker实例的命令行下的“ ioBroker”下调用开始菜单。然后将自动设置正确的目录。在Linux或macOS上,请转到ioBroker目录。",once,"only in this browser session":"仅在此浏览器会话中","Only one":"只有一个","Only selected":"只选","Only tgz files are allowed":"仅允许 .tgz 文件","Open charts in new window":"在新窗口中打开图表","Open original":"在新标签页上打开","Open repository":"公开资料库","open web page":"打开插件的网页",Optional,"Optional. Always relative to iobroker.js-controller/":"选修的。始终相对于iobroker.js-controller/","Or install from a file":"或从文件安装","or reboot server, then ioBroker should restart and you can be sure that all old processes were finished.":"或重新启动服务器,然后ioBroker应该重新启动,并且您可以确保所有旧进程都已完成。","Or select from the list":"或从列表中选择","Ordered at":"订购于",os,OS,"other permissions":"其他权限","Otherwise please update the slaves first with an update of master-slave systems and the master last!":"否则,请先更新主从系统,然后再更新主服务器,以更新从服务器!","output events":"输出事件",Owner,"Owner group":"所有者组","Owner user":"所有者用户",Pakistan,Palau,Palestine,Panama,"Papua New Guinea":"巴布亚新几内亚",Paraguay,Parent,"Parent ID":"父母身份证","parent name":"父节点名字","Parse error":"解析错误",password,Password,"Password and confirmation are not equal!":"两次输入密码不相同!","Password cannot be empty!":"密码不能为空!","Password must be at least 8 characters long and have numbers, upper and lower case letters":"密码必须至少包含8个字符,并且包含数字,大写和小写字母","Password repeat":"密码重复","Passwords are not equal":"密码不相等",Path,"Path to storage:":"存储路径","Pause output":"暂停输出","Performing this update will restart the js-controller afterwards!":"执行此更新后将重新启动 js-controller!这会将您的 Node.js 版本更新为配置的 apt 源中可用的最新版本。",permissionError,Permissions,Peru,Philippines,PID,Pitcairn,"place here":"将文件放在这里","Place your files here or click here to open the browse dialog":"将文件放在此处或单击此处以打开浏览对话框",planned,platform,Platform,"Please confirm":"请确认","Please execute the following commands in an SSH shell (console):":"请在SSH Shell(控制台)中执行以下命令:","Please make sure you know what you are doing!":"请确保您知道自己在做什么!","Please read these important notes:":"请阅读以下重要说明:","Please select country":"请选择国家","Please select specific version of %s":"请选择 %s 的特定版本","Please select the rooms that exist in your home. You can add or remove rooms later in the categories tab.":"请选择您家中现有的房间。稍后您可以在类别选项卡中添加或删除房间。","Please wait for an official release!":"请等待正式发布!",Plugins,point,Poland,popular,Popular,"Popular first":"最热门","Popup for any custom information.":"弹出任何自定义信息。",Port,"Port forwarding":"转发端口","Port to check the domain:":"用于检查域的端口",Portugal,"Preserve ID":"保留ID","Press ALT-key to copy":"按 ALT 键复制","Press CTRL+ENTER to write the value, when focused":"聚焦后按CTRL + ENTER写入值","Press ENTER to write the value, when focused":"聚焦后按ENTER输入值",press_discover,Preview,process:process$1,processes,"Processing...":"处理中...",Product,Protocol,protocols_group,"Puerto Rico":"波多黎各","pushover wizard description":"有了 ioBroker Pushover 适配器,您就可以自己向安卓和 iOS 设备发送信息,并使用 Pushover API 的各种功能。通过这些功能,您不仅可以发送简单的文本信息,还可以附加图片和其他文件。您还可以通过设置不同的优先级或为不同事件设置特定的声音,根据个人需要定制通知。",Qatar,Quality,RAM,"RAM limit":"RAM限制","RAM total usage:":"总RAM使用量:","RAM usage":"RAM使用情况",Rate,"Rate how good this version of the adapter works on your system. You can vote for every new version.":"评估此版本的适配器在系统上的运行情况。您可以为每个新版本投票。","Rating for":"评分",raw,read,"Read converter":"读转换器","read only":"只读","read operation":"读","Read timeout":"读取超时","Read to the end for accept":"阅读完后接受",Readable,readme,Readme,"Really delete credential %s?":"确实要删除凭据 %s 吗?",Rebuild,"Rebuild tree":"重建设备树","Recently updated":"最近更新","Redirect in %s second(s)":"5 秒后重定向","Redis password":"Redis密码","Refresh log":"刷新日志",Relative,reload,Reload,"reload instance":"重新加载程序","Remote host of the HTTP logging endpoint":"HTTP日志记录端点的远程主机","Remote port of the HTTP logging endpoint":"HTTP日志记录端点的远程端口","Remote URI of the HTTP logging endpoint":"HTTP日志记录端点的远程URI",Remove,"Remove attribute %s":"删除属性 %s","Remove color":"去除颜色","Remove filter for updatable adapters":"Remove filter for updatable adapters","Remove icon":"删除图标",Removed,"Removing of adapter...":"删除插件...","Removing of instance...":"删除程序...",Rename,"Rename all children":"重命名所有子项","Rename or copy object":"重命名或复制对象",repeat,"Repeat administrator password":"重复管理员密码","Repeat password is not equal with password":"重复的密码不等于密码!",Replace,repo_update_hint,Repositories,repository,"Repository data last updated: %s":"存储库数据最后更新时间:%s","Repository data last updated: %s (oldest from %s)":"存储库数据上次更新:%s(最早的 %s)","Repository timestamps (oldest from %s):":"存储库时间戳(最早的时间戳来自 %s):","Repository timestamps:":"存储库时间戳:","Requesting data...":"正在请求数据...",Reset,rest,restart,Restart,"Restart adapter after install":"安装后重启适配器","Restart host":"重新启动主机","restart script":"重启自动化","Restart works only if controller started as system service.":"仅当控制器作为系统服务启动时,重新启动才有效。",restartLoop,"Restore from backup":"从备份恢复","Restore repository list to default":"将存储库列表恢复为默认值","Retry maximum count":"重试最大计数","Retry maximum delay":"重试最大延迟",Reunion,"Reverse output direction":"输出方向相反",Review,Rights,role,Role,Romania,Room,Rooms,"Run npm install iobroker.js-controller there. A specific version can be installed using npm install iobroker.js-controller@x.y.z (replace x.y.z with the desired version).":"在此处运行npm install iobroker.js-controller。可以使用“ npm install iobroker.js-controller@x.y.z”安装特定版本(将“ x.y.z”替换为所需的版本)。","Running command":"运行命令","Running: ":"运行:","Runs as web-extension":"作为网络扩展运行",runtime,"Russian Federation":"俄罗斯联邦",Rwanda,"Saint Kitts and Nevis":"圣基茨和尼维斯","Saint Lucia":"圣卢西亚","Saint Vincent and the Grenadines":"圣文森特和格林纳丁斯",Samoa,"San Marino":"圣马力诺","Sao Tome and Principe":"圣多美和普林西比",Sat,"Saudi Arabia":"沙特阿拉伯",save,Save,"Save & close":"保存并关闭","Save & Close":"保存并关闭","Save as image":"另存为图像","Save configuration":"保存配置","Save configuration?":"保存配置?","Save Objecttree as JSON File":"将设备树保存为JSON文件","Save Objecttree is not possible":"无法保存设备树","saved:":"已保存:","scenes wizard description":'使用 ioBroker 场景适配器,您可以将多个数据点组合到场景中,只需点击一下即可触发复杂的操作。试想一下,创建一个名为 "影院 "的场景,在这个场景中,Harmony Hub 会打开所有必要的设备,调暗灯光,并在屏幕降低时打开阅读灯。您还可以设置群组,根据场景的活动或非活动状态,为每个场景定义两种不同的连接数据点状态。',schedule,schedule_group,Script,script_group,Scripts,"See on github":"见github","Seems that you have slow connection. Do you want to increase timeout interval?":"似乎您的连接速度很慢。您是否要增加超时间隔?",Select,"Select adapter":"选择适配器","Select adapter:":"选择插件","Select file":"选择文件","Select host to add the instance":"选择主机添加实例","Select ID":"选择ID","Select language":"选择语言","select member by double click":"双击选择成员","Select methods":"选择方法","Select options":"选择选项","Select predefined icon":"选择预定义的图标","Select the rooms in your home":"选择您家中的房间","Select type of export":"选择导出类型","Select/Unselect all":"全选/取消全选","Selected %s object(s)":"已选择%s个对象","Selected adapters":"选定的适配器","sendto operation":"发送操作",Senegal,"Sent data:":"已发送数据",Sep,September,"SEQ log":"序列日志",Serbia,"serial number (UUID) in license is for other device":"许可证中的序列号 (UUID) 用于其他设备","Server URL":"服务器网址",service_group,"Session expire in %s":"会话在%s中过期",Set:"组","Set administrator password":"设置管理员密码","Set CRON":"设置 CRON","Set CRON schedule for restarts":"设置重启的CRON计划","Set tier for %s":"为%s设置等级","Set timeout to 1 minute":"将超时设置为1分钟","Set value":"设定值",Settings,"Settings %s":"设定 %s","Settings for %s":"%s的设置","Settings saved":"设置已保存",severity,Seychelles,"Show / hide List":"显示/隐藏列表","Show change log":"显示更改日志","Show comments in language":"以语言显示评论","Show error in log if RAM less than":"如果RAM小于,则在日志中显示错误","Show errors":"显示错误","Show errors and warnings":"显示错误和警告","Show help for this adapter":"显示此适配器的帮助","show ignored":"显示被忽略","Show instances only for current host":"仅显示当前主机的程序","Show instructions":"显示指示","Show less":"显示较少","Show lines":"显示线路","Show list view":"显示清单检视","Show members":"显示成员","Show more":"显示更多","Show more info":"显示更多信息","Show only installed":"仅显示已安装的适配器","Show only running instances":"仅显示正在运行的实例","Show running or stopped instances":"显示正在运行或已停止的实例","Show sent statistics data":"显示已发送的统计数据","show suggested":"显示建议","Show tree view":"显示树状视图","Show values of instance":"显示程序的值","Show warning im log if RAM less than":"如果RAM小于,则显示警告即时日志","Show whole changelog":"显示整个变更日志","Show...":"节目...","Show/hide colors":"显示/隐藏颜色","show/hide item":"显示/隐藏项目","Show/hide PID":"显示/隐藏进程ID","Showed only installed adapters":"仅显示已安装的适配器","Showed only installed adapters without instance.":"仅显示已安装的适配器,没有实例。","Showed only running instances":"仅显示正在运行的实例","Showed only stopped instances":"仅显示停止的实例","Sierra Leone":"塞拉利昂","signal-cmb wizard description":"有了 ioBroker Signal-CMB 适配器,您就可以使用 Signal 信使通过 CallMeBot 服务发送消息。支持文本内容和表情符号,让您的信息栩栩如生。用户可以方便地了解智能家居中发生的事件,即使在旅行中也能始终掌握最新信息。",Silent,silly,Singapore,"Single-Sign On disconnected":"单点登录已断开连接","Site name":"站点名称","Size: %s, Free: %s":"大小:%s,可用:%s","Skip discovery process and go to install with last scan results":"跳过发现过程并使用上次扫描结果进行安装",Slovakia,Slovenia,"Solomon Islands":"所罗门群岛",Somalia,"Some data are not stored. Discard?":"某些数据未存储。放弃保存吗?","Some updates available":"一些可用的更新","Sorry, you cannot use ioBroker.":"抱歉,您不能使用ioBroker。","Sort alphabetically":"按名称按字母顺序排序","Sort by":"排序方式","Sort direction":"排序方向",Source,"Source (show all)":"来源(显示全部)","South Africa":"南非","South Georgia South Sandwich Islands":"南乔治亚南桑威奇群岛",Spain,Speed,"sql wizard description":"使用 ioBroker SQL 适配器,您可以记录数据,以便对其进行长期可视化或历史分析。SQL 适配器将数据写入外部 SQL 数据库,该数据库可在同一主机或不同主机上运行。也支持 SQLite 数据库。与历史适配器相比,SQL 更适合记录大量数据,但需要手动设置。","Sri Lanka":"斯里兰卡",SSL,"St. Helena":"圣赫勒拿岛","St. Pierre and Miquelon":"圣皮埃尔和密克隆",stable,"Start date":"开始日期","Start order (tier)":"起始订单(等级)","Start time":"开始时间","Start update":"开始升级","Start wizard":"启动向导","Start/stop":"开始/停止","Started...":"开始中...",state,State,"State does not exist":"国家不存在","state permissions":"状态权限","State type":"状态类型","State type":"状态类型",States,"States rights":"状态权限",Statistics,"Statistics:":"统计",Status,"Stay signed in":"保持登录","Step type":"台阶式",stepEnd,stepMiddle,stepStart,"Stop on error":"错误停止",stop_admin,"Storage of %s":'存储<span class="name">%s</span>',"Storage of %s states":'存储<span class="name">%s</span>状态',storage_group,"Store file interval":"存储文件间隔","Stream log":"流日志",string,subscribe,"Success!":"成功!",Sudan,Suggestion,Sun,sunday,Sunday,"Suppress for 5 minutes":"抑制5分钟",Suriname,"Svalbard and Jan Mayen Islands":"斯瓦尔巴群岛和扬马延岛",Swaziland,Sweden,switch:"开关",switch_db_note,Switzerland,"Synchronize admin settings between all opened browser windows":"在所有打开的浏览器窗口之间同步管理设置","Syrian Arab Republic":"阿拉伯叙利亚共和国",Syslog,"Syslog facility to use (Default: local0).":"要使用的Syslog工具(默认值:local0)。","SysLog Type":"SysLog类型",System,"System language:":"系统语言","System settings":"系统","System uptime":"系统正常运行时间",Table,Taiwan,Tajikistan,Tanzania,"telegram wizard description":"有了 ioBroker Telegram 适配器,您就可以通过 Telegram Messenger 向自己发送信息,这样当系统发生变化时,您就可以随时了解最新情况。除文本信息外,您还可以发送图片和其他文件。您甚至可以发送问题,并直接在 ioBroker 中处理答案。","Temperature unit":"温度单位","Temperature units":"温度单位","Temperature units:":"温度单位",Template,"temporary log level":"临时日志级别",terminal,Thailand,"The adapter can be used free of charge.":"该适配器可免费使用。","The adapter has a limited functionality without a paid license.":"如果没有付费许可证,该适配器的功能有限。","The adapter requires a paid license for commercial use.":"该适配器需要付费许可证才能用于商业用途。","The adapter requires a paid license.":"该适配器需要付费许可证。","The apiKey of the seq system":"seq系统的apiKey","The changes will be applied to %s states. Are you sure?":"所做的更改将应用于%s个州。你确定吗?","The Cloud services from iobroker.net/pro can help here to do that securely:":"iobroker.net/pro的Cloud服务可以帮助您安全地执行此操作:","The current selected configuration will allow to automatically pull in incompatible changes of this adapter!":"当前选定的配置将允许自动引入此适配器的不兼容更改!","The device or service delivers the new state actively":"设备或服务主动传递新状态","The device or service will be periodically asked":"会定期询问设备或服务","The end of line character to be added to the end of the message (Default: Message without modifications).":"要添加到消息末尾的行尾字符(默认值:不做任何修改的消息)。","The expert mode allows you to view and edit system internal details.":"专家模式可让您查看和编辑系统内部详细信息。","The host running syslogd, defaults to localhost":"运行syslogd的主机,默认为localhost","The http(s) URL including port of the seq server. If you use HTTPS a real certificate is needed; self signed certs are ot accepted.":"http(s)URL,包括seq服务器的端口。如果您使用HTTPS,则需要一个真实的证书。可以接受自签名证书。","The JSONL DB is append-only and will contain unnecessary entries after a while.":"JSONL DB 是仅附加的,一段时间后将包含不必要的条目。","The name of the application (Default: process.title).":"应用程序的名称(默认:process.title)。","The path to the syslog dgram socket (i.e. /dev/log or /var/run/syslog for OS X).":"syslog dgram套接字的路径(对于OS X,即/ dev / log或/ var / run / syslog)。","The port on the host that syslog is running on, defaults to syslogd's default port(514/UDP).":"运行syslog的主机上的端口,默认为syslogd的默认端口(514 / UDP)。","The sent data will only be processed by ioBroker GmbH for statistical purposes and will not be shared with any third parties.":"发送的数据仅由 ioBroker GmbH 用于统计目的处理,不会与任何第三方共享。","The type of the syslog protocol to use (Default: BSD).":"要使用的syslog协议的类型(默认值:BSD)。","These options can reduce the size of the export file:":"这些选项可以减小导出文件的大小:","third-party_group":"第三方","this 2 weeks":"这2个星期","This adapter cannot be installed from git as must be built before installation.":"无法从git安装此适配器,因为必须在安装前先进行构建。","this adapter does not allow multiple instances":"此插件不允许多个程序同时运行","This content cannot be loaded because it uses insecure HTTP protocol.":"无法加载此内容,因为它使用了不安全的 HTTP 协议。","This credential is used by":"此凭据被以下实例使用","this day":"这天","This feature is supported up from js-controller Kiera (Version 6)!":"该功能从 js-controller Kiera (版本 6) 开始支持!","This is the recommended option":"这是推荐的选项","this month":"这个月","This name will be shown in admin's header. Just to identify the whole installation":"该名称将显示在管理员的标题中。只是为了识别整个安装","This object does not used in any aliases yet":"该对象尚未在任何别名中使用","This object is used in aliases":"该对象用于别名",'This version of node.js "%s" on "%s" is deprecated. Please install node.js 6, 8 or newer':'ioBroker支持LTS版本6,8,10,12或更新的node.js.请将主机"%s"上的版本("%s")更新为其中一个受支持的版本。我们建议使用Node.js 10。',"This way is only necessary in very few cases and please consult the forum beforehand!":"仅在极少数情况下才需要这种方式,请事先咨询论坛!","this week":"本星期","this year":"今年",Thu,Tiers,"Tiers define the order of adapters when the system starts.":"层定义了系统启动时适配器的顺序。",time,Time,"Time From":"时间从","Time stamp":"时间戳","Time To":"时间到","time-and-date_group":"时间和日期",timeOffset,'Tip: Use the "notification-manager" adapter to receive notifications automatically via messaging adapters.':"提示:使用“通知管理器”适配器通过消息传递适配器自动接收通知。",title,Title,To,"to apply one item":"申请一件","to apply with children":"申请项目和儿童","to fix these issues and upgrade command run again.":"解决这些问题并再次运行upgrade命令。",today,Today,"Toggle expert mode":"切换专家模式","Toggle states view":"切换状态视图",Togo,Tokelau,Tonga,"Too many events":"太多事件",tooltip_ack,tooltip_copyState,tooltip_customConfig,tooltip_deleteObject,tooltip_editObject,tooltip_editState,tooltip_from,tooltip_lc,tooltip_quality,tooltip_ts,tooltip_user,tooltip_value,"Total adapters":"适配器总数","Total count in group":"小组总数","Total RAM usage":"总RAM使用量","Total rating:":"总评分:","Translated from %s":"从%s翻译","Trigger event":"触发事件","Trinidad and Tobago":"特立尼达和多巴哥",true:"正常",ts,Tue,Tunisia,Turkey,Turkmenistan,"Turks and Caicos Islands":"特克斯和凯科斯群岛",Tuvalu,type,Type,"Type of result is not as expected: %s":"结果类型与预期不符: %s",Uganda,Ukraine,"Uncheck All":"取消所有",Understand,"Unique name":"唯一名称",unit,"United Arab Emirates":"阿拉伯联合酋长国","United Kingdom":"英国","United States":"美国","United States minor outlying islands":"美国小型离岛","Unknown error":"未知错误","Unknown file format!":"未知的文件格式!",'Unknown type: use in name "private", "public" or "chained" to define the certificate type':"未知类型:在名称中使用“private”、“public”或“chained”来定义证书类型",Unsecure_Auth,"Unsupported image format":"不支持的图像格式",update,Update,'Update "%s" to v%s':"将“ %s”更新为v%s","Update %s adapter(s)":"更新 %s 适配器","update adapter information":"更新插件信息","Update all adapters":"更新所有适配器","Update info adapter":"更新信息插件","Update objects":"更新设备","Update role for %s":'设置 "%s"的角色',"Update states":"更新状态","Update view":"更新视图",update_info_no_net,updated,Updated,updates,"updating %s to %s...":"更新 %s 到 %s...","Updating %s...":"更新 %s..",Upgrade,"Upgrade all adapters":"升级所有插件",upload,Upload,"Upload adapter after install":"安装后上传适配器","Upload admin started":"开始上传配置","Upload failed":"上传失败","Upload started...":"上传已开始...",Uptime,URL:URL$1,"URL or file path":"URL 或文件路径(Tarball)","URL or file path:":"URL或文件路径",Uruguay,"Use convert functions":"使用转换功能","Use following methods:":"使用以下方法:","use GitHub for issues":"我们重视您对我们软件的评分和想法。对于错误报告,请使用我们的 GitHub 问题跟踪器,当您留下评论时,请考虑未解决的问题可能会影响您的体验。您的反馈有助于我们改善。感谢您成为我们社区的一部分!","Use last scan":"使用上次扫描","Use Lets Encrypt certificates:":"使用Let's Encrypt证书","Use self signed certificates":"使用自签名证书","Use settings of other browsers":"使用其他浏览器的设置","Use settings of this browser":"使用此浏览器的设置","Use Single-Sign On":"使用单点登录","Use this button:":"使用此按钮:","Use this instance for automatic update:":"使用此程序进行自动更新","Used by":"使用人","Used for sentinels":"用于前哨","Used only to calculate position.":"仅用于计算位置。",User,"User deleted":"用户已删除","User does not exist":"用户不存在","User parameters":"用户参数","user permissions":"用户权限","User yet exists":"用户已存在",users,Users:Users$1,"users permissions":"用户权限",utility_group,UUID,Uzbekistan,V,val,"Valid till":"有效期至",value:value$1,Value,"Value type":"值类型","value.from":"来自于","value.lc":"上次更新","value.q":"质量","value.ts":"时间戳","value.val":"值","Values of %s":"%s的值",Vanuatu,"Vatican City State":"梵蒂冈城",vehicle_group,Venezuela,version,Vietnam,View,"View file in state: %s":"查看文件状态:%s","View: %s":"查看: %s","Virgin Islands (British)":"维尔京群岛(英属)","Virgin Islands (U.S.)":"维尔京群岛(美国)",vis_group,"vis-2 wizard description":"ioBroker Vis 2 适配器是为您的智能家居提供的现代化、功能强大的可视化解决方案。有了这个适配器,您就可以根据自己的意愿,用现代小部件创建自己的可视化系统。无论您是想将仪表盘设计成简约风格还是具有多种功能,都有无限可能。按自己喜欢的方式设计智能家居界面吧!",visualisation_group,Visualization,"visualization wizard category":"借助此类适配器,您可以构建仪表板以通过 ioBroker Visu 应用程序或 Web 界面控制您的家庭。",visualization_group,"visualization-icons_group":"可视化图标","visualization-widgets_group":"可视化小部件",vote,"Vote:":"投票:",vote21,votes,votes2,"Waiting for admin restart...":"等待管理员重启...","Waiting for connection of ioBroker...":"等待连接 ioBroker...","Wallis and Futuna Islands":"瓦利斯群岛和富图纳群岛",warn,"Warning: Free space on disk is low":"警告:磁盘上的可用空间不足!","Warning!":"警告!",Warning1,Warning2,weather,Weather,"weather wizard category":"通过天气适配器,您可以获得当地天气信息并将其用于可视化和自动化。",weather_group,"weatherunderground wizard description":"有了 ioBroker Weather Underground 适配器,您就可以在 ioBroker 中使用天气数据。例如,这意味着下雨时可以提醒您关闭打开的窗户,或者在暴风雨来临时自动收回遮阳篷。这样,您的智能家居就能更好地适应当前的天气条件,确保更加舒适和安全。",Wed,"Week starts with":"周始于",Welcome,"Western Sahara":"撒哈拉沙漠西部",wetty,"When activated this host can be discovered by other iobroker installations in your network to become the master of a multihost system.":"激活后,该主机可以被网络中的其他ioBroker安装发现,成为多主机系统的主机。","When enabled adapter instances can run in one or few processes to save RAM usage.":"启用后,适配器实例可以在一个或几个进程中运行以节省RAM使用量。","Wide all":"全部宽","Will be reset to the saved log level after restart of adapter":"重新启动适配器后将重置为保存的日志级别",With,"with js-controller":"带有 js 控制器","With password":"带密码",Without,"Without restart":"无需重启","wizard adapter general description":'从您希望直接安装的适配器中进行选择。您可以稍后在 "适配器 "选项卡中安装其他适配器。',"Would you like to restart the controller for your changes to take effect?":"您想重新启动控制器以使更改生效吗?",write,Write,"Write converter":"写转换器","write operation":"写","Write to the database file no more than every X milliseconds":"写入数据库文件不超过每 X 毫秒","Write value":"写值",Writeable,"Wrong dependencies":"错误的依赖关系",wrongPassword,Yemen,Yes,yesterday,"You are going to add new instance:":"您将要添加新程序:","You can change host on Instances, Adapters or Logs pages":"您可以在实例、适配器或日志页面上更改主机","You can change the host name, but be aware, that all instances must be assigned anew":"您可以更改主机名,但请注意,必须重新分配所有实例","You can check changelog here":'您可以查看更改日志<a href="https://github.com/ioBroker/ioBroker.js-controller/blob/master/CHANGELOG.md" target="_blank">此处</a>',"You can drag and drop list items for reorder":"您可以拖放列表项以重新排序","You can drag users to groups.":"您可以将用户拖动到组中。","You can drag&drop the devices, channels and states to enums":"您可以将设备,通道和状态拖放到分类中","You can drag&drop users to groups":"您可以将用户拖放到组中","You can export all objects or just the selected branch.":"您可以导出所有对象或仅导出选定的分支。","You can set the log level permanently in the base host settings":"您可以在主机基础设置中永久设置日志级别","You can't see events via cloud":"您无法通过云查看事件","You cannot delete host, when it is alive":"你不能删除主机,当它还活着","You have unread news!":"您有未读新闻!","You have unsaved changes":"您有未保存的更改","You must set the administrator password":"您必须设置管理员密码","You voted for %s on %s":"您在年对v%s投了赞成票%s","You want to move %s states with enabled history":"您想要移动已启用历史记录的 %s 个状态","Your are intend to edit ALL objects. Are you sure?":"您要编辑所有对象。您确定吗?","Your comment":"你的评论","Your communication with admin is not encrypted":"您与管理员的通讯未加密","Your home":"你的家","YYYY.MM.DD":"YYYY.MM.DD",Zaire,Zambia,Zimbabwe},Adapters=React.lazy(()=>__vitePreload(()=>import("./Adapters-B5_jQ7DE.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35]),import.meta.url)),Instances=React.lazy(()=>__vitePreload(()=>import("./Instances-YdaGnS5a.js"),__vite__mapDeps([36,1,2,3,4,5,6,7,8,9,11,37,21,16,17,38,39,15,10,18,19,20,22,23,24,25,26,27,28,29,30,31,32,33,34,35]),import.meta.url)),Intro=React.lazy(()=>__vitePreload(()=>import("./Intro-DkwRiz1n.js"),__vite__mapDeps([40,1,2,3,4,5,6,7,11,17,16,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35]),import.meta.url)),Logs=React.lazy(()=>__vitePreload(()=>import("./Logs-CsVPSLJH.js"),__vite__mapDeps([41,1,2,3,4,5,6,7,8,9,11,16,17,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35]),import.meta.url)),Files=React.lazy(()=>__vitePreload(()=>import("./Files-Cd2HOzIE.js"),__vite__mapDeps([42,1,2,3,4,5,6,7,11,20,18,21,22,23,24,25,26,27,28,29,30,16,17,31,32,33,34,35]),import.meta.url)),Objects=React.lazy(()=>__vitePreload(()=>import("./Objects-DPan0bzw.js"),__vite__mapDeps([43,1,2,3,4,5,6,7,11,44,21,23,8,9,13,14,18,20,22,24,25,26,27,28,29,30,16,17,31,32,33,34,35,45]),import.meta.url)),Users=React.lazy(()=>__vitePreload(()=>import("./Users-BgnBRgwU.js"),__vite__mapDeps([46,1,2,3,4,5,6,11,47,7,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,20,21,22,23,24,25,26,27,28,29,30,16,17,31,32,33,34,35]),import.meta.url)),Enums=React.lazy(()=>__vitePreload(()=>import("./Enums-DbWYxKOo.js"),__vite__mapDeps([70,1,2,3,4,5,6,11,47,7,8,9,26,71,20,21,22,23,24,25,27,28,29,30,16,17,31,32,33,34,35]),import.meta.url)),CustomTab=React.lazy(()=>__vitePreload(()=>import("./CustomTab-B0wqoazH.js"),__vite__mapDeps([72,1,2,3,4,5,6,7,44,11,21,20,22,23,24,25,26,27,28,29,30,16,17,31,32,33,34,35]),import.meta.url)),DeviceManagerTab=React.lazy(()=>__vitePreload(()=>import("./DeviceManager-BFmQeYQ1.js"),__vite__mapDeps([73,1,2,3,4,5,6,20,11,21,22,23,24,25,26,7,27,28,29,30,16,17,31,32,33,34,35]),import.meta.url)),Hosts=React.lazy(()=>__vitePreload(()=>import("./Hosts-Bg8QzW5i.js"),__vite__mapDeps([74,1,2,3,4,5,6,7,11,9,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35]),import.meta.url)),EasyMode=React.lazy(()=>__vitePreload(()=>import("./EasyMode-B1d9Vdc4.js"),__vite__mapDeps([75,1,2,3,4,5,6,7,11,37,21,16,17,20,22,23,24,25,26,27,28,29,30,31,32,33,34,35]),import.meta.url)),query={};(window.location.search||"").replace(/^\?/,"").split("&").forEach(t=>{const e=t.split("=");e[0]&&(query[e[0]]=e[1]===void 0?!0:decodeURIComponent(e[1]))});const styles={root:{display:"flex",height:"100%"},appBar:t=>({transition:t.transitions.create(["margin","width"],{easing:t.transitions.easing.sharp,duration:t.transitions.duration.leavingScreen})}),logoWhite:{backgroundColor:"#FFFFFF"},appBarShift:t=>({width:`calc(100% - ${DRAWER_FULL_WIDTH}px)`,ml:DRAWER_FULL_WIDTH/8,transition:t.transitions.create(["margin","width"],{easing:t.transitions.easing.easeOut,duration:t.transitions.duration.enteringScreen})}),appBarShiftEdit:t=>({width:`calc(100% - ${DRAWER_EDIT_WIDTH}px)`,ml:DRAWER_EDIT_WIDTH/8,transition:t.transitions.create(["margin","width"],{easing:t.transitions.easing.easeOut,duration:t.transitions.duration.enteringScreen})}),appBarShiftCompact:t=>({width:`calc(100% - ${DRAWER_COMPACT_WIDTH}px)`,ml:DRAWER_COMPACT_WIDTH/8,transition:t.transitions.create(["margin","width"],{easing:t.transitions.easing.easeOut,duration:t.transitions.duration.enteringScreen})}),menuButton:{marginRight:16},hide:{display:"none"},content:t=>{var e,a,n;return{flexGrow:1,padding:1,transition:t.transitions.create("margin",{easing:t.transitions.easing.sharp,duration:t.transitions.duration.leavingScreen}),overflowY:"auto",mt:`${(e=t.mixins.toolbar)==null?void 0:e.minHeight}px`,"@media (min-width:0px) and (orientation: landscape)":{mt:(a=t.mixins.toolbar["@media (min-width:0px) and (orientation: landscape)"])!=null&&a.minHeight?`${t.mixins.toolbar["@media (min-width:0px) and (orientation: landscape)"].minHeight}px`:void 0},"@media (min-width:600px)":{mt:(n=t.mixins.toolbar["@media (min-width:600px)"])!=null&&n.minHeight?`${t.mixins.toolbar["@media (min-width:600px)"].minHeight}px`:void 0}}},contentMargin:{ml:-DRAWER_FULL_WIDTH/8},contentMarginEdit:{ml:-DRAWER_EDIT_WIDTH/8},contentMarginCompact:{ml:-DRAWER_COMPACT_WIDTH/8},contentShift:t=>({transition:t.transitions.create("margin",{easing:t.transitions.easing.easeOut,duration:t.transitions.duration.enteringScreen}),ml:0}),expertIcon:{width:22,height:22},expertIconActive:{},baseSettingsButton:{color:"red"},alert_info:{},alert_error:{backgroundColor:"#f44336"},alert_success:{backgroundColor:"#4caf50"},avatarNotVisible:{opacity:0,marginLeft:5,transition:"opacity 0.3s",width:"initial"},avatarVisible:{opacity:1},cmd:{animation:"1s linear infinite alternate $myEffect",opacity:.2},errorCmd:{color:"#a90000",animation:"0.2s linear infinite alternate myEffect2"},performed:t=>({color:t.palette.mode==="light"?"#3bfd44":"#388e3c",animation:"0.2s linear infinite alternate myEffect2"}),wrapperButtons:{display:"flex",marginRight:"auto",overflowY:"auto",alignItems:"center"},flexGrow:{flexGrow:2},userBadge:{lineHeight:"48px",display:"inline-block"},userIcon:{borderRadius:4,width:44,height:44,verticalAlign:"middle",marginLeft:10,marginRight:10},userText:{verticalAlign:"middle",fontSize:16,maxWidth:250,marginRight:10,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",display:"inline-block"},userBackground:t=>({borderRadius:1,backgroundColor:t.palette.mode==="dark"?"#EEE":"#222",p:.5}),styleVersion:{fontSize:10},wrapperName:{display:"flex",flexDirection:"column",marginRight:10},expertBadge:{mt:"11px",mr:"11px"},siteName:{lineHeight:"48px",fontSize:24,marginLeft:10,marginRight:10,display:"inline-block",verticalAlign:"middle"},tooltip:{pointerEvents:"none"}},DEFAULT_GUI_SETTINGS_OBJECT={_id:"",type:"state",common:{name:"Admin settings",type:"boolean",read:!0,write:!1,role:"state"},native:{localStorage:{},sessionStorage:{}}};class App extends iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.Router{translations;_tempAllStored=!0;refConfigIframe=null;refUser;refUserDiv;expireInSecInterval=null;toggleThemePossible;adminGuiConfig;logsWorker;instancesWorker;hostsWorker;adaptersWorker;objectsWorker;guiSettings;localStorageTimer=null;languageSet;socket;adminInstance="";newsInstance=0;doNotAskSessionExpiration=0;tabsInfo=null;constructor(e){super(e);try{window.alert=i=>{i&&i.toString().toLowerCase().includes("error")?(console.error(i),this.showAlert(i.toString(),"error")):(console.log(i),this.showAlert(i.toString(),"info"))}}catch{}this.translations=iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.dictionary;const a={en:enLocal,de:deLocal,ru:ruLocal,pt:ptLocal,nl:nlLocal,fr:frLocal,it:itLocal,es:esLocal,pl:plLocal,uk:ukLocal,"zh-cn":zhCNLocal};Object.keys(a).forEach(i=>Object.assign(this.translations[i],a[i])),iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.setTranslations(this.translations),iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.setLanguage((window.navigator.language||window.navigator.userLanguage||"en").substring(0,2).toLowerCase()),this.refUser=React.createRef(),this.refUserDiv=React.createRef(),this.adminGuiConfig={admin:{menu:{},settings:{},adapters:{},login:{}}};const n=window.vendorPrefix;if(this.toggleThemePossible=!n||n==="@@vendorPrefix@@"||n==="MV",query.login){const i=App.createTheme();this.state={login:!0,theme:i,themeName:App.getThemeName(i),themeType:App.getThemeType(i)}}else{const i=(window._localStorage||window.localStorage).getItem("App.drawerState");let o;i?o=parseInt(i,10):o=this.props.width==="xs"?STATES.closed:STATES.opened;const r=App.createTheme();Object.defineProperty(window,"configNotSaved",{get:()=>this.state.configNotSaved,set:l=>{const h=!l;h!==this._tempAllStored&&(this._tempAllStored=h,this.forceUpdate())},configurable:!0}),this.state={connected:!1,progress:0,ready:!1,lang:"en",hostname:window.location.hostname,expertMode:!1,chatDockWidth:0,hosts:[],currentHost:"",currentHostName:"",ownHost:"",currentTab:iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.Router.getLocation(),systemConfig:null,user:null,repository:{},installed:{},waitForRestart:!1,tabs:null,config:{},stateChanged:!1,theme:r,themeName:App.getThemeName(r),themeType:App.getThemeType(r),alert:!1,alertType:"info",alertMessage:"",drawerState:o,editMenuList:!1,tab:null,dataNotStoredDialog:!1,dataNotStoredTab:null,baseSettingsOpened:!1,unsavedDataInDialog:!1,systemSettingsOpened:!1,cmd:null,cmdDialog:!1,commandHost:null,commandError:!1,commandRunning:!1,wizard:!0,performed:!1,discoveryAlive:!1,readTimeoutMs:SlowConnectionWarningDialogClass.getReadTimeoutMs(),showSlowConnectionWarning:!1,versionAdmin:"",forceUpdateAdapters:0,noTranslation:(window._localStorage||window.localStorage).getItem("App.noTranslation")!=="false",cloudNotConnected:!1,cloudReconnect:0,showRedirect:"",redirectCountDown:0,triggerAdapterUpdate:0,updating:!1,notificationsDialog:!1,notifications:{},noNotifications:{warning:0,other:0},configNotSaved:!1,login:!1,showHostWarning:null,adapters:{},askForTokenRefresh:null,userMenuAnchor:null},this.logsWorker=null,this.instancesWorker=null,this.hostsWorker=null}}static getDerivedStateFromError(e){return{hasGlobalError:e}}componentDidCatch(e){this.setState({hasGlobalError:e})}static checkSsoResponse(){const e=new URLSearchParams(window.location.search);if(e.has("id_token")&&(window.localStorage.setItem("oidc_id_token",e.get("id_token")),window.location.search=""),e.has("ssoLoginResponse")){const a=JSON.parse(e.get("ssoLoginResponse"));AdminConnection.saveTokensStatic(a,!0),window.location.search=""}}setUnsavedData(e){e!==this.state.unsavedDataInDialog&&this.setState({unsavedDataInDialog:e})}mustInvertBackground(e){if(!e)return!1;const a=iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.Utils.invertColor(e,!0);return a==="#FFFFFF"&&this.state.themeType==="dark"?!0:a==="#000000"&&this.state.themeType==="light"}localStorageGetItem=e=>this.guiSettings.native.localStorage[e];localStorageSetItem=(e,a)=>{if(a===null)a="null";else if(a===void 0){this.localStorageRemoveItem(e);return}this.guiSettings.native.localStorage[e]=a.toString(),this.localStorageSave()};localStorageRemoveItem=e=>{Object.prototype.hasOwnProperty.call(this.guiSettings.native.localStorage,e)&&(delete this.guiSettings.native.localStorage[e],this.localStorageSave())};sessionStorageGetItem=e=>this.guiSettings.native.sessionStorage[e];sessionStorageSetItem=(e,a)=>{if(a===null)a="null";else if(a===void 0){this.sessionStorageRemoveItem(e);return}this.guiSettings.native.sessionStorage[e]=a.toString(),this.localStorageSave()};sessionStorageRemoveItem=e=>{Object.prototype.hasOwnProperty.call(this.guiSettings.native.sessionStorage,e)&&(delete this.guiSettings.native.sessionStorage[e],this.localStorageSave())};localStorageSave(){this.localStorageTimer&&clearTimeout(this.localStorageTimer),this.localStorageTimer=setTimeout(async()=>{this.localStorageTimer=null,await this.socket.setObject(`system.adapter.${this.adminInstance}.guiSettings`,this.guiSettings)},200)}toggleTranslation=()=>{(window._localStorage||window.localStorage).setItem("App.noTranslation",this.state.noTranslation?"false":"true"),this.setState({noTranslation:!this.state.noTranslation})};async getGUISettings(){let e;if(!this.adminInstance)return;try{e=await this.socket.getObject(`system.adapter.${this.adminInstance}.guiSettings`)}catch(n){console.warn(`Could not get "system.adapter.${this.adminInstance}.guiSettings": ${n.message}`)}if(!e){e=JSON.parse(JSON.stringify(DEFAULT_GUI_SETTINGS_OBJECT));try{await this.socket.setObject(`system.adapter.${this.adminInstance}.guiSettings`,e)}catch(n){console.warn(`Could not update "system.adapter.${this.adminInstance}.guiSettings": ${n}`)}}let a;try{a=await this.socket.getState(`system.adapter.${this.adminInstance}.guiSettings`)}catch{a={val:!1}}if(a!=null&&a.val){this.guiSettings=e,this.guiSettings.native||={localStorage:{},sessionStorage:{}},this.guiSettings.native.localStorage||(this.guiSettings.native={localStorage:this.guiSettings.native,sessionStorage:{}}),window._localStorage={getItem:this.localStorageGetItem,setItem:this.localStorageSetItem,removeItem:this.localStorageRemoveItem},window._sessionStorage={getItem:this.sessionStorageGetItem,setItem:this.sessionStorageSetItem,removeItem:this.sessionStorageRemoveItem};const n=(window._localStorage||window.localStorage).getItem("App.drawerState");let i;n?i=parseInt(n,10):i=this.props.width==="xs"?STATES.closed:STATES.opened;const o=(window._localStorage||window.localStorage).getItem("App.noTranslation")!=="false";this.setState({guiSettings:!0,drawerState:i,noTranslation:o},()=>{iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.Utils.getThemeName()!==this.state.theme.name&&this.toggleTheme(iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.Utils.getThemeName())})}else this.state.guiSettings&&(window._localStorage=null,window._sessionStorage=null,this.setState({guiSettings:!1}))}enableGuiSettings(e,a){e&&!this.guiSettings?this.socket.getObject(`system.adapter.${this.adminInstance}.guiSettings`).then(async n=>{this.guiSettings=n||JSON.parse(JSON.stringify(DEFAULT_GUI_SETTINGS_OBJECT)),a||!this.guiSettings.native||!Object.keys(this.guiSettings.native).length?(this.guiSettings.native={localStorage:{},sessionStorage:{}},Object.keys(window.localStorage).forEach(i=>{i!=="getItem"&&i!=="setItem"&&i!=="removeItem"&&i!=="clear"&&i!=="key"&&i!=="length"&&(this.guiSettings.native.localStorage[i]=window.localStorage.getItem(i))}),Object.keys(window.sessionStorage).forEach(i=>{i!=="getItem"&&i!=="setItem"&&i!=="removeItem"&&i!=="clear"&&i!=="key"&&i!=="length"&&(this.guiSettings.native.sessionStorage[i]=window.sessionStorage.getItem(i))}),await this.socket.setObject(`system.adapter.${this.adminInstance}.guiSettings`,this.guiSettings),await this.socket.setState(`system.adapter.${this.adminInstance}.guiSettings`,{val:!0,ack:!0})):(await this.socket.setState(`system.adapter.${this.adminInstance}.guiSettings`,{val:!0,ack:!0}),window.location.reload()),await this.getGUISettings()}):!e&&this.guiSettings&&this.socket.getObject(`system.adapter.${this.adminInstance}.guiSettings`).then(async n=>{if(!n)try{await this.socket.setObject(`system.adapter.${this.adminInstance}.guiSettings`,DEFAULT_GUI_SETTINGS_OBJECT)}catch(i){console.error(`Cannot create system.adapter.${this.adminInstance}.guiSettings": ${i}`)}window._localStorage=null,window._sessionStorage=null,Object.keys(window.localStorage).forEach(i=>window.localStorage.removeItem(i)),Object.keys(window.sessionStorage).forEach(i=>window.sessionStorage.removeItem(i)),Object.keys(this.guiSettings.native.localStorage).forEach(i=>window.localStorage.setItem(i,this.guiSettings.native.localStorage[i])),Object.keys(this.guiSettings.native.sessionStorage).forEach(i=>window.sessionStorage.setItem(i,this.guiSettings.native.sessionStorage[i])),this.guiSettings=null;try{await this.socket.setState(`system.adapter.${this.adminInstance}.guiSettings`,{val:!1,ack:!0})}catch(i){window.alert(`Cannot disable settings: ${i}`)}this.setState({guiSettings:!1})})}componentDidMount(){App.checkSsoResponse(),this.state.login||(window.addEventListener("hashchange",this.onHashChanged,!1),this.state.currentTab.tab?this.setTitle(this.state.currentTab.tab.replace("tab-","")):this.handleNavigation("tab-intro"),this.socket=new AdminConnection({protocol:window.location.protocol,host:window.location.hostname,name:"eos-admin",admin5only:!0,port:App.getPort(),autoSubscribes:["system.adapter.*"],autoSubscribeLog:!0,tokenTimeoutHandler:this.onSessionExpiration,onProgress:e=>{e===PROGRESS.CONNECTING?this.setState({connected:!1}):e===PROGRESS.READY?this.socket.getVersion().then(async a=>{var i,o;console.log(`Stored version: ${this.state.versionAdmin}, new version: ${a.version}`),this.state.versionAdmin&&this.state.versionAdmin!==a.version&&(window.alert("New adapter version detected. Reloading..."),setTimeout(()=>window.location.reload(),500)),this.adminInstance||(this.adminInstance=await this.socket.getCurrentInstance()),await this.getGUISettings();const n={connected:!0,progress:100,versionAdmin:a.version,disableMcp:!1};if(this.state.cmd&&/\b(?:admin|eos-admin)(?:@[-.\w]+)?(?:\s+--debug)?$/.test(this.state.cmd))n.commandRunning=!1,n.forceUpdateAdapters=this.state.forceUpdateAdapters+1,this.closeCmdDialog(()=>{this.setState(n),window.location.reload()});else{try{const r=await this.socket.getObject(`system.adapter.${this.adminInstance}`);n.disableMcp=!!((i=r==null?void 0:r.native)!=null&&i.disableMcp),(o=r==null?void 0:r.native)!=null&&o.language?r.native.language!==iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.getLanguage()&&(console.log(`Language changed to ${r.native.language}`),iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.setLanguage(r.native.language),this.languageSet?window.location.reload():this.languageSet=!0):this.socket.systemLang!==iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.getLanguage()&&(console.log(`Language changed to ${this.socket.systemLang}`),iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.setLanguage(this.socket.systemLang),this.languageSet?window.location.reload():this.languageSet=!0)}catch(r){console.error(`Cannot read admin settings: ${r}`)}this.setState(n)}}).catch(a=>{console.error(`Cannot read version: ${a}`),a==="ioBroker is not connected"&&(setInterval(()=>{this.state.cloudReconnect>0?this.setState({cloudReconnect:this.state.cloudReconnect-1}):window.location.reload()},1e3),this.setState({cloudNotConnected:!0,cloudReconnect:10}))}):this.setState({connected:!0,progress:Math.round(PROGRESS.READY/e*100)})},onReady:async()=>{var e,a,n,i;this.adminGuiConfig={admin:{menu:{},settings:{},adapters:{},login:{}},...(e=this.socket.systemConfig.native)==null?void 0:e.vendor},this.adminGuiConfig.admin.menu||={},this.adminGuiConfig.admin.settings||={},this.adminGuiConfig.admin.adapters||={},this.adminGuiConfig.admin.login||={};try{this.adminInstance||(this.adminInstance=await this.socket.getCurrentInstance()),this.adminInstance||console.error("Cannot read admin instance!");const o=await this.socket.getObject(`system.adapter.${this.adminInstance}`);(a=o==null?void 0:o.native)!=null&&a.language?iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.setLanguage(o.native.language):iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.setLanguage(this.socket.systemLang),this.languageSet=!0;const r=await this.socket.getIsEasyModeStrict();if(await this.getGUISettings(),r){const d=await this.socket.getEasyMode();this.setState({lang:this.socket.systemLang,ready:!0,strictEasyMode:!0,easyModeConfigs:d.configs});return}this.logsWorker||=new LogsWorker(this.socket,1e3),this.instancesWorker||=new InstancesWorker(this.socket),this.hostsWorker||=new HostsWorker(this.socket),this.adaptersWorker||=new AdaptersWorker(this.socket),this.objectsWorker||=new ObjectsWorker(this.socket);const l={lang:this.socket.systemLang,ready:!0};try{l.systemConfig=await this.socket.getCompactSystemConfig(),l.wizard=!l.systemConfig.common.licenseConfirmed,await this.findCurrentHost(l),await this.readRepoAndInstalledInfo(l.currentHost,l.hosts)}catch(d){console.log(`Error reading repo in onReady: ${d.stack}`)}this.adaptersWorker.registerRepositoryHandler(this.repoChangeHandler),this.adaptersWorker.registerHandler(this.adaptersChangeHandler),this.hostsWorker.registerHandler(this.updateHosts),this.hostsWorker.registerNotificationHandler(this.handleNewNotifications);const h=(window._sessionStorage||window.sessionStorage).getItem("App.expertMode");if(l.expertMode=h?h==="true":!!l.systemConfig.common.expertMode,this.socket.isSecure||(n=this.socket.systemConfig.native)!=null&&n.vendor)try{const d=await this.socket.getCurrentUser(),p=await this.socket.getObject(`system.user.${d}`);(i=p.native)!=null&&i.vendor&&Object.assign(this.adminGuiConfig,p.native.vendor),this.socket.isSecure&&this.setState({user:{id:p._id,name:iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.Utils.getObjectNameFromObj(p,this.socket.systemLang),color:p.common.color,icon:p.common.icon,invertBackground:this.mustInvertBackground(p.common.color)}})}catch(d){console.error(`Could not determine user to show: ${d.toString()}, ${d.stack}`),this.showAlert(d.toString(),"error")}this.setState(l,()=>this.setCurrentTabTitle()),this.socket.subscribeState("system.adapter.discovery.0.alive",this.onDiscoveryAlive),setTimeout(()=>this.logsWorkerChanged(this.state.currentHost),1e3),setTimeout(()=>this.findNewsInstance().then(d=>{this.newsInstance=d,this.socket.subscribeState(`admin.${d}.info.newsFeed`,this.onNews)}),5e3),setTimeout(async()=>{const d=await this.hostsWorker.getNotifications(l.currentHost);await this.handleNewNotifications(d)},3e3)}catch(o){console.error(`Error in onReady: ${o.stack}`),this.showAlert(`Error in onReady: ${o.stack}`,"error")}},onError:e=>{console.error(e);let a;e instanceof Error?a=e.message||e.toString():a=e.toString(),a==="ioBroker is not connected"?this.state.cloudNotConnected||(this.showAlert(iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.t(a),"error"),setInterval(()=>{this.state.cloudReconnect>0?this.setState({cloudReconnect:this.state.cloudReconnect-1}):window.location.reload()},1e3),this.setState({cloudNotConnected:!0,cloudReconnect:10})):this.showAlert(a,"error")}}))}componentWillUnmount(){var e,a,n,i;window.removeEventListener("hashchange",this.onHashChanged,!1),(e=this.socket)==null||e.unsubscribeState("system.adapter.discovery.0.alive",this.onDiscoveryAlive),(a=this.adaptersWorker)==null||a.unregisterRepositoryHandler(this.repoChangeHandler),(n=this.adaptersWorker)==null||n.unregisterHandler(this.adaptersChangeHandler),(i=this.hostsWorker)==null||i.unregisterHandler(this.updateHosts),this.expireInSecInterval&&(clearInterval(this.expireInSecInterval),this.expireInSecInterval=null),window._localStorage&&(window._localStorage=null,window._sessionStorage=null)}updateHosts=e=>{const a=JSON.parse(JSON.stringify(this.state.hosts));e.forEach(n=>{const i=a.find(o=>o._id===n.id);if(i){const o=a.indexOf(i);n.obj?a[o]=n.obj:a.splice(o,1)}else a.push(n.obj)}),this.setState({hosts:a})};repoChangeHandler=()=>{this.readRepoAndInstalledInfo(this.state.currentHost,null,!0).then(()=>console.log("Repo updated!"))};adaptersChangeHandler=e=>{const a=JSON.parse(JSON.stringify(this.state.installed));let n=!1;e.forEach(i=>{const r=i.id.split(".")[2];i.type==="deleted"||!i.obj?a[r]&&(n=!0,delete a[r]):a[r]?Object.keys(a[r]).forEach(l=>{a[r][l]!==i.obj.common[l]&&(a[r][l]=i.obj.common[l],n=!0)}):(a[r]={version:i.obj.common.version},n=!0)}),n&&this.setState({installed:a})};async findCurrentHost(e){var n,i;if(e.hosts=await this.socket.getCompactHosts(),!this.state.currentHost){const o=(window._localStorage||window.localStorage).getItem("App.currentHost"),r=e.hosts.find(l=>l._id===o);o&&r?(e.currentHost=r._id,e.currentHostName=((n=r.common)==null?void 0:n.name)||r._id.replace("system.host.","")):(e.currentHost=e.hosts[0]._id,e.currentHostName=((i=e.hosts[0].common)==null?void 0:i.name)||e.hosts[0]._id.replace("system.host.",""))}e.ownHost=e.currentHost;let a;try{a=await this.socket.getState(`${e.currentHost}.alive`)}catch(o){a=null,console.warn(`Cannot get state ${e.currentHost}.alive: ${o}`)}if(!(a!=null&&a.val))for(let o=0;o<e.hosts.length;o++)a=await this.socket.getState(`${e.hosts[o]._id}.alive`),a!=null&&a.val&&(e.currentHost=e.hosts[o]._id,e.currentHostName=e.hosts[o].common.name)}renderTokenTimeoutDialog(){return this.state.askForTokenRefresh?jsxRuntimeExports.jsxs(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.Dialog,{open:!0,onClose:()=>App.logout(),children:[jsxRuntimeExports.jsxs(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.DialogContent,{children:[jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.DialogContentText,{children:iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.t("ra_Session will expire in %s seconds. Continue?",Math.round((this.state.askForTokenRefresh.expireAt-Date.now())/1e3))}),jsxRuntimeExports.jsx("div",{children:jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.FormControlLabel,{label:iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.t("ra_Do not ask for next 2 hours in this session"),control:jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.Checkbox,{checked:this.state.askForTokenRefresh.doNotAsk,onChange:()=>{const e={...this.state.askForTokenRefresh};this.state.askForTokenRefresh.doNotAsk=!this.state.askForTokenRefresh.doNotAsk,this.setState({askForTokenRefresh:e})}})})})]}),jsxRuntimeExports.jsxs(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.DialogActions,{children:[jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.Button,{onClick:()=>{const e=this.state.askForTokenRefresh.resolve;this.state.askForTokenRefresh.doNotAsk&&(this.doNotAskSessionExpiration=Date.now()+36e5*2),this.expireInSecInterval&&(clearInterval(this.expireInSecInterval),this.expireInSecInterval=null),this.setState({askForTokenRefresh:null},()=>e(!0))},variant:"contained",startIcon:jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_icons_mf_2_material__loadShare__.Update,{}),children:iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.t("ra_Continue")}),jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.Button,{onClick:()=>App.logout(),variant:"outlined",color:"grey",startIcon:jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_icons_mf_2_material__loadShare__.Logout,{}),children:iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.t("ra_Logout")})]})]}):null}onSessionExpiration=e=>new Promise(a=>{const n=AdminConnection.readTokens();this.doNotAskSessionExpiration&&Date.now()<this.doNotAskSessionExpiration||n.refresh_token_expires_in.getTime()>Date.now()?a(!0):this.setState({askForTokenRefresh:{expireAt:e,resolve:a,doNotAsk:!1}},()=>{this.expireInSecInterval||=setInterval(()=>{Date.now()>=this.state.askForTokenRefresh.expireAt?(clearInterval(this.expireInSecInterval),this.expireInSecInterval=null,AdminConnection.deleteTokensStatic(),window.location.reload()):this.forceUpdate()},1e3)})});onDiscoveryAlive=(e,a)=>{!!(a!=null&&a.val)!==this.state.discoveryAlive&&this.setState({discoveryAlive:!!(a!=null&&a.val)})};getDiscoveryModal=()=>jsxRuntimeExports.jsx(DiscoveryDialog,{themeType:this.state.themeType,themeName:this.state.themeName,theme:this.state.theme,socket:this.socket,systemConfig:this.state.systemConfig.common,dateFormat:this.state.systemConfig.common.dateFormat,currentHost:this.state.currentHost,defaultLogLevel:this.state.systemConfig.common.defaultLogLevel,repository:this.state.repository,hosts:this.state.hosts,onClose:()=>iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.Router.doNavigate(null)});async findNewsInstance(){for(let a=0;a<200;a++)try{const n=await this.socket.getState(`system.adapter.eos-admin.${a}.alive`);if(n!=null&&n.val)return a}catch(n){console.error(`Cannot find news instance: ${n.stack}`),this.showAlert(`Cannot find news instance: ${n.stack}`,"error")}return 0}renderNotificationsDialog(){var e,a;return this.state.notificationsDialog?jsxRuntimeExports.jsx(NotificationsDialog,{notifications:((e=this.state.notifications)==null?void 0:e.notifications)||{},instances:((a=this.state.notifications)==null?void 0:a.instances)||{},onClose:()=>this.setState({notificationsDialog:!1}),ackCallback:(n,i)=>this.socket.clearNotifications(n,i),dateFormat:this.state.systemConfig.common.dateFormat,isFloatComma:this.state.systemConfig.common.isFloatComma,themeType:this.state.themeType,themeName:this.state.themeName,theme:this.state.theme,socket:this.socket}):null}renderHostWarningDialog(){return this.state.showHostWarning?jsxRuntimeExports.jsx(HostWarningDialog,{instances:this.state.showHostWarning.instances,messages:this.state.showHostWarning.result.system.categories,dateFormat:this.state.systemConfig.common.dateFormat,themeType:this.state.themeType,ackCallback:e=>this.socket.clearNotifications(this.state.showHostWarning.host,e),onClose:()=>this.setState({showHostWarning:null})}):null}handleNewNotifications=async e=>{const a={warning:0,other:0};if(!e){this.setState({noNotifications:a,notifications:{}});return}for(const i of Object.values(e))if(i!=null&&i.result){for(const[o,r]of Object.entries(i.result))if(o!=="system")for(const l of Object.values(r.categories))for(const h of Object.values(l.instances)){const d=l.severity==="alert";a[d?"warning":"other"]+=h.messages.length}}const n=await this.instancesWorker.getObjects();this.setState({noNotifications:a,notifications:{notifications:e,instances:n}})};showAdaptersWarning=async(e,a)=>{if(!e||!e[a]||!e[a].result)return;const n=e[a].result;n!=null&&n.system&&Object.keys(n.system.categories).length&&await this.instancesWorker.getObjects().then(i=>this.setState({showHostWarning:{host:a,instances:i,result:n}}))};onNews=async(e,a)=>{try{if(!this.state.systemConfig.common.licenseConfirmed)return;const n=await this.socket.getState(`admin.${this.newsInstance}.info.newsLastId`);if(a!=null&&a.val){let i=null;try{i=JSON.parse(a.val)}catch{console.error(`Cannot parse news: ${a.val}`)}if(i!=null&&i.length&&i[0].id!==(n==null?void 0:n.val)){const o=await this.socket.getUuid(),r=await this.socket.getHostInfo(this.state.currentHost).catch(()=>null),l=await this.socket.getCompactInstances().catch(()=>null),h=(await this.socket.getDiagData(this.state.currentHost,"normal")).objectsType,d=await this.objectsWorker.getObjects(!0),p=Object.keys(d||{}).length,u=checkMessages(i,n==null?void 0:n.val,{lang:iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.getLanguage(),adapters:this.state.adapters,instances:l||{},nodeVersion:r&&r["Node.js"]||"?",npmVersion:r&&r.NPM||"?",os:r&&r.os||"?",activeRepo:this.state.systemConfig.common.activeRepo,uuid:o,objectsDbType:h,noObjects:p});u!=null&&u.length&&this.setState({showNews:{checkNews:u,lastNewsId:n==null?void 0:n.val}})}}}catch(n){console.error(`Could not process news: ${n.stack}`),this.showAlert(`Could not process news: ${n.stack}`,"error")}};renderNewsDialog(){return this.state.showNews?jsxRuntimeExports.jsx(NewsAdminDialog,{newsArr:this.state.showNews.checkNews,current:this.state.showNews.lastNewsId,onSetLastNewsId:async e=>{e&&await this.socket.setState(`admin.${this.newsInstance}.info.newsLastId`,{val:e,ack:!0}),this.setState({showNews:null})}}):null}renderSlowConnectionWarning(){return this.state.showSlowConnectionWarning?jsxRuntimeExports.jsx(SlowConnectionWarningDialogClass,{readTimeoutMs:this.state.readTimeoutMs,t:iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.t,onClose:e=>{e?this.setState({showSlowConnectionWarning:!1,readTimeoutMs:e},()=>this.readRepoAndInstalledInfo(this.state.currentHost)):this.setState({showSlowConnectionWarning:!1})}}):null}async readRepoAndInstalledInfo(e,a,n){a||=this.state.hosts;const i=await this.socket.getCompactRepository(e,n,this.state.readTimeoutMs).catch(l=>(window.alert(`Cannot getRepositoryCompact: ${l}`),l.toString().includes("timeout")&&this.setState({showSlowConnectionWarning:!0}),{})),o=await this.socket.getCompactInstalled(e,n,this.state.readTimeoutMs).catch(l=>(window.alert(`Cannot getInstalled: ${l}`),l.toString().includes("timeout")&&this.setState({showSlowConnectionWarning:!0}),{})),r=await this.socket.getCompactAdapters(n).catch(l=>(window.alert(`Cannot read adapters: ${l}`),{}));o&&r&&Object.keys(r).forEach(l=>{o[l]&&r[l].iv&&(o[l].ignoreVersion=r[l].iv)}),this.setState({repository:i,installed:o,hosts:a,adapters:r})}logsWorkerChanged=e=>{var a;(a=this.logsWorker)==null||a.setCurrentHost(e)};onHashChanged=()=>{this.setState({currentTab:iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.Router.getLocation()},()=>this.setCurrentTabTitle())};static getPort(){let e=parseInt(window.location.port,10);if(Number.isNaN(e))switch(App.getProtocol()){case"https:":e=443;break;case"http:":e=80;break}return(!e||e===3e3)&&(e=8081),e}static getProtocol(){return window.location.protocol}static createTheme(e){return iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.Theme(iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.Utils.getThemeName(e))}static getThemeName(e){return e.name}static getThemeType(e){return e.palette.mode}toggleTheme=e=>{const a=this.state.themeName,n=e||iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.Utils.toggleTheme(a),i=App.createTheme(n);this.setState({theme:i,themeName:n,themeType:App.getThemeType(i)},()=>{var o,r,l,h;(r=(o=this.refConfigIframe)==null?void 0:o.contentWindow)==null||r.postMessage("updateTheme","*"),(h=(l=this.refConfigIframe)==null?void 0:l.contentWindow)==null||h.postMessage({type:"updateTheme",themeName:n},"*")})};setCurrentTabTitle(){this.setTitle(this.state.currentTab.tab.replace("tab-",""))}setTitle(e){document.title=`${e} - ${this.state.currentHostName||"ioBroker"}`}getCurrentTab(){var e;if(this.state&&this.state.currentTab&&this.state.currentTab.tab){if(this.state.currentTab.tab==="tab-adapters"){const n=this.props.width==="xs"||this.props.width==="sm",i=!n&&this.state.drawerState===STATES.opened,o=n||this.state.drawerState===STATES.closed;return jsxRuntimeExports.jsx(iobroker_admin__loadShare__react__loadShare__.Suspense,{fallback:jsxRuntimeExports.jsx(Connecting,{}),children:jsxRuntimeExports.jsx(Adapters,{theme:this.state.theme,triggerUpdate:this.state.triggerAdapterUpdate,forceUpdateAdapters:this.state.forceUpdateAdapters,adaptersWorker:this.adaptersWorker,instancesWorker:this.instancesWorker,themeType:this.state.themeType,systemConfig:this.state.systemConfig,socket:this.socket,adminHost:this.state.ownHost,hostsWorker:this.hostsWorker,currentHost:this.state.currentHost,ready:this.state.ready,t:iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.t,lang:iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.getLanguage(),expertMode:this.state.expertMode,executeCommand:(r,l,h,d)=>this.executeCommand(r,l,h,d),commandRunning:this.state.commandRunning,onSetCommandRunning:r=>this.setState({commandRunning:r}),menuOpened:i,menuClosed:o,adminGuiConfig:this.adminGuiConfig,toggleTranslation:this.toggleTranslation,noTranslation:this.state.noTranslation,adminInstance:this.adminInstance,currentAdminVersion:this.state.versionAdmin,onUpdating:r=>this.setState({updating:r})},"adapters")})}if(this.state.currentTab.tab==="tab-instances")return jsxRuntimeExports.jsx(iobroker_admin__loadShare__react__loadShare__.Suspense,{fallback:jsxRuntimeExports.jsx(Connecting,{}),children:jsxRuntimeExports.jsx(Instances,{menuPadding:this.state.drawerState===STATES.closed?0:this.state.drawerState===STATES.opened?this.state.editMenuList?DRAWER_EDIT_WIDTH:DRAWER_FULL_WIDTH:DRAWER_COMPACT_WIDTH,socket:this.socket,instancesWorker:this.instancesWorker,lang:iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.getLanguage(),hostname:this.state.hostname,adminInstance:this.adminInstance,repository:this.state.repository,hosts:this.state.hosts,themeName:this.state.themeName,themeType:this.state.themeType,theme:this.state.theme,expertMode:this.state.expertMode,currentHost:this.state.currentHost,currentHostName:this.state.currentHostName,t:iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.t,dateFormat:this.state.systemConfig.common.dateFormat,isFloatComma:this.state.systemConfig.common.isFloatComma,width:this.props.width,configStored:n=>this.allStored(n),executeCommand:(n,i,o,r)=>this.executeCommand(n,i,o,r),inBackgroundCommand:this.state.commandError||this.state.performed,onRegisterIframeRef:n=>this.refConfigIframe=n,onUnregisterIframeRef:n=>{this.refConfigIframe===n&&(this.refConfigIframe=null)},handleNavigation:this.handleNavigation},"instances")});if(this.state.currentTab.tab==="tab-intro")return jsxRuntimeExports.jsx(iobroker_admin__loadShare__react__loadShare__.Suspense,{fallback:jsxRuntimeExports.jsx(Connecting,{}),children:jsxRuntimeExports.jsx(Intro,{hostname:this.state.hostname,adminInstance:this.adminInstance,instancesWorker:this.instancesWorker,hostsWorker:this.hostsWorker,showAlert:(n,i)=>this.showAlert(n,i),socket:this.socket,t:iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.t,lang:iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.getLanguage(),theme:this.state.theme},"intro")});if(this.state.currentTab.tab==="tab-logs")return jsxRuntimeExports.jsx(iobroker_admin__loadShare__react__loadShare__.Suspense,{fallback:jsxRuntimeExports.jsx(Connecting,{}),children:jsxRuntimeExports.jsx(Logs,{t:iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.t,width:this.props.width,lang:this.state.lang,socket:this.socket,themeType:this.state.themeType,theme:this.state.theme,ready:this.state.ready,logsWorker:this.logsWorker,expertMode:this.state.expertMode,currentHost:this.state.currentHost,hostsWorker:this.hostsWorker,clearErrors:()=>this.clearLogErrors()},"logs")});if(this.state.currentTab.tab==="tab-files")return jsxRuntimeExports.jsx(iobroker_admin__loadShare__react__loadShare__.Suspense,{fallback:jsxRuntimeExports.jsx(Connecting,{}),children:jsxRuntimeExports.jsx(Files,{ready:this.state.ready,t:iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.t,expertMode:this.state.expertMode,lang:iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.getLanguage(),socket:this.socket,themeType:this.state.themeType,theme:this.state.theme},"files")});if(this.state.currentTab.tab==="tab-users")return jsxRuntimeExports.jsx(iobroker_admin__loadShare__react__loadShare__.Suspense,{fallback:jsxRuntimeExports.jsx(Connecting,{}),children:jsxRuntimeExports.jsx(Users,{ready:this.state.ready,t:iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.t,expertMode:this.state.expertMode,lang:iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.getLanguage(),socket:this.socket,themeType:this.state.themeType,theme:this.state.theme},"users")});if(this.state.currentTab.tab==="tab-enums")return jsxRuntimeExports.jsx(iobroker_admin__loadShare__react__loadShare__.Suspense,{fallback:jsxRuntimeExports.jsx(Connecting,{}),children:jsxRuntimeExports.jsx(Enums,{t:iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.t,lang:iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.getLanguage(),socket:this.socket,themeType:this.state.themeType,theme:this.state.theme},"enums")});if(this.state.currentTab.tab==="tab-objects")return jsxRuntimeExports.jsx(iobroker_admin__loadShare__react__loadShare__.Suspense,{fallback:jsxRuntimeExports.jsx(Connecting,{}),children:jsxRuntimeExports.jsx(Objects,{t:iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.t,theme:this.state.theme,themeName:this.state.themeName,themeType:this.state.themeType,expertMode:this.state.expertMode,objectsWorker:this.objectsWorker,lang:iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.getLanguage(),socket:this.socket,dateFormat:this.state.systemConfig.common.dateFormat,isFloatComma:this.state.systemConfig.common.isFloatComma})},"objects");if(this.state.currentTab.tab==="tab-hosts")return jsxRuntimeExports.jsx(iobroker_admin__loadShare__react__loadShare__.Suspense,{fallback:jsxRuntimeExports.jsx(Connecting,{}),children:jsxRuntimeExports.jsx(Hosts,{socket:this.socket,lang:iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.getLanguage(),hostsWorker:this.hostsWorker,toggleTranslation:this.toggleTranslation,noTranslation:this.state.noTranslation,themeType:this.state.themeType,theme:this.state.theme,expertMode:this.state.expertMode,t:iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.t,currentHost:this.state.currentHost,executeCommand:(n,i,o,r)=>this.executeCommand(n,i,o,r),systemConfig:this.state.systemConfig,showAdaptersWarning:this.showAdaptersWarning,adminInstance:this.adminInstance,onUpdating:n=>this.setState({updating:n})})});if(this.state.currentTab.tab==="tab-devicemanager")return jsxRuntimeExports.jsx(iobroker_admin__loadShare__react__loadShare__.Suspense,{fallback:jsxRuntimeExports.jsx(Connecting,{}),children:jsxRuntimeExports.jsx(DeviceManagerTab,{themeName:this.state.themeName,themeType:this.state.themeType,theme:this.state.theme,socket:this.socket,dateFormat:this.state.systemConfig.common.dateFormat,isFloatComma:this.state.systemConfig.common.isFloatComma},this.state.currentTab.tab)});const a=this.state.currentTab.tab.match(/^tab-([-\w]+?)(?:-(\d+))?$/);if(a){const n=(e=this.tabsInfo)==null?void 0:e.find(i=>i.name===a[0]||i.name===`tab-${a[1]}`);return jsxRuntimeExports.jsx(iobroker_admin__loadShare__react__loadShare__.Suspense,{fallback:jsxRuntimeExports.jsx(Connecting,{}),children:jsxRuntimeExports.jsx(CustomTab,{hostname:this.state.hostname,adminInstance:this.adminInstance,hosts:this.state.hosts,instancesWorker:this.instancesWorker,tab:this.state.currentTab.tab,themeName:this.state.themeName,theme:this.state.theme,expertMode:this.state.expertMode,socket:this.socket,dateFormat:this.state.systemConfig.common.dateFormat,isFloatComma:this.state.systemConfig.common.isFloatComma,onRegisterIframeRef:i=>this.refConfigIframe=i,onUnregisterIframeRef:i=>{this.refConfigIframe===i&&(this.refConfigIframe=null)},icon:n==null?void 0:n.icon,supportsLoadingMessage:n==null?void 0:n.supportsLoadingMessage},this.state.currentTab.tab)})}}return null}clearLogErrors(){this.logsWorker.resetErrors(),this.logsWorker.resetWarnings()}getCurrentDialog(){if(this.state&&this.state.currentTab&&this.state.currentTab.dialog){if(this.state.currentTab.dialog==="system")return this.getSystemSettingsDialog();if(this.state.currentTab.dialog==="discovery")return this.getDiscoveryModal()}return null}getSystemSettingsDialog(){return jsxRuntimeExports.jsx(SystemSettingsDialog$1,{adminGuiConfig:this.adminGuiConfig,width:this.props.width,currentHost:this.state.currentHost,themeName:this.state.themeName,themeType:this.state.themeType,theme:this.state.theme,onClose:async e=>{iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.Router.doNavigate(null);const a=await this.socket.getObject("system.config");e?this.setState({triggerAdapterUpdate:this.state.triggerAdapterUpdate+1,systemConfig:a}):this.setState({systemConfig:a})},lang:this.state.lang,socket:this.socket,currentTab:this.state.currentTab,expertModeFunc:e=>{(window._sessionStorage||window.sessionStorage).removeItem("App.expertMode");const a=JSON.parse(JSON.stringify(this.state.systemConfig));a.common.expertMode=e,this.setState({expertMode:e,systemConfig:a})},t:iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.t},"systemSettings")}handleAlertClose(e,a){a!=="clickaway"&&this.setState({alert:!1})}showAlert(e,a){a!=="error"&&a!=="warning"&&a!=="info"&&a!=="success"&&(a="info");let n;typeof e!="string"?e instanceof Error?n=e.message||e.toString():e==null?n="null":n=e.toString():n=e,this.setState({alert:!0,alertType:a,alertMessage:n})}handleDrawerState(e){(window._localStorage||window.localStorage).setItem("App.drawerState",e.toString()),this.setState({drawerState:e})}static logout(){AdminConnection.deleteTokensStatic(),window.location.port==="3000"?window.location.href=`${window.location.protocol}//${window.location.hostname}:8081/logout?dev`:window.location.href=`./logout?origin=${window.location.pathname}`}handleNavigation=(e,a,n)=>{var i;e&&(this._tempAllStored?(iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.Router.doNavigate(e,a,n),this.setState({currentTab:iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.Router.getLocation()})):this.setState({dataNotStoredDialog:!0,dataNotStoredTab:{tab:e,subTab:a,param:n}})),(this.props.width==="xs"||this.props.width==="sm")&&this.handleDrawerState(STATES.closed),e||=((i=this.state.currentTab)==null?void 0:i.tab)||"",this.setTitle(e.replace("tab-",""))};allStored(e){this._tempAllStored!==e&&(this._tempAllStored=e,this.forceUpdate())}closeDataNotStoredDialog(){this.setState({dataNotStoredDialog:!1})}confirmDataNotStored(){this._tempAllStored=!0,this.setState({dataNotStoredDialog:!1},()=>{var e,a,n;return this.handleNavigation((e=this.state.dataNotStoredTab)==null?void 0:e.tab,(a=this.state.dataNotStoredTab)==null?void 0:a.subTab,(n=this.state.dataNotStoredTab)==null?void 0:n.param)})}executeCommand(e,a,n,i){if(typeof a=="boolean"&&(n=a,a=null),this.state.performed||this.state.commandError){this.setState({cmd:null,cmdDialog:!1,commandError:!1,performed:!1,callback:null,commandHost:null,cmdFiles:null},()=>this.setState({cmd:e,cmdDialog:!0,callback:n,cmdFiles:i||null}));return}console.log(`Execute: ${e}`),this.setState({cmd:e,cmdDialog:!0,callback:n,commandHost:a||this.state.currentHost,cmdFiles:i||null})}closeCmdDialog(e){this.setState({cmd:null,cmdDialog:!1,commandError:!1,performed:!1,callback:null,commandHost:null,cmdFiles:null},()=>e&&e())}renderWizardDialog(){return this.state.wizard?jsxRuntimeExports.jsx(WizardDialog$1,{executeCommand:(e,a,n,i)=>this.executeCommand(e,a,n,i),host:this.state.currentHost,socket:this.socket,themeName:this.state.themeName,themeType:this.state.themeType,toggleTheme:this.toggleTheme,lang:iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.getLanguage(),onClose:e=>{this.setState({wizard:!1,showRedirect:e,redirectCountDown:10},()=>{this.state.showRedirect&&setInterval(()=>{this.state.redirectCountDown>0?this.setState({redirectCountDown:this.state.redirectCountDown-1}):window.location.href=this.state.showRedirect},1e3)})},onNavigate:(e,a,n)=>{iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.Router.doNavigate(e,a,n),window.location.reload()}}):null}showRedirectDialog(){var e;return this.state.showRedirect?jsxRuntimeExports.jsxs(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.Dialog,{open:!0,onClose:()=>{},children:[jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.DialogTitle,{children:iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.t("Waiting for admin restart...")}),jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.DialogContent,{children:jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.DialogContentText,{children:iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.t("Redirect in %s second(s)",this.state.redirectCountDown)})}),jsxRuntimeExports.jsxs(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.DialogActions,{children:[window.sidebar||window.opera&&window.print||window.document.all&&((e=window.external)!=null&&e.AddFavorite)?jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.Button,{onClick:()=>{if(window.sidebar)window.sidebar.addPanel("ioBroker.admin",this.state.showRedirect,"");else if(window.opera&&window.print){const a=document.createElement("a");a.setAttribute("href",this.state.showRedirect),a.setAttribute("title","ioBroker.admin"),a.setAttribute("rel","sidebar"),a.click()}else document.all&&window.external.AddFavorite(this.state.showRedirect,"ioBroker.admin")},children:iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.t("Bookmark admin")}):null,this.state.redirectCountDown?jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.Button,{variant:"contained",onClick:()=>window.location.href=this.state.showRedirect,children:iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.t("Go to admin now")}):null]})]}):null}renderCommandDialog(){return this.state.cmd?jsxRuntimeExports.jsx(CommandDialog,{onSetCommandRunning:e=>this.setState({commandRunning:e}),onClose:()=>this.closeCmdDialog(()=>this.setState({commandRunning:!1})),visible:this.state.cmdDialog,callback:this.state.callback,onInBackground:()=>this.setState({cmdDialog:!1}),cmd:this.state.cmd,files:this.state.cmdFiles||void 0,errorFunc:()=>this.setState({commandError:!0}),performed:()=>this.setState({performed:!0}),inBackground:this.state.commandError||this.state.performed,commandError:this.state.commandError,socket:this.socket,host:this.state.commandHost||this.state.currentHost,ready:this.state.ready,t:iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.t}):null}renderLoggedUser(){var e;return this.state.user&&this.props.width!=="xs"&&this.props.width!=="sm"?jsxRuntimeExports.jsxs("div",{children:[this.state.systemConfig.common.siteName?jsxRuntimeExports.jsx("div",{style:styles.siteName,children:this.state.systemConfig.common.siteName}):null,jsxRuntimeExports.jsxs(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.Box,{component:"div",title:this.state.user.id,sx:{...styles.userBadge,...this.state.user.invertBackground?styles.userBackground:void 0,...this.socket.isSecure?{cursor:"pointer"}:{}},ref:this.refUser,...this.socket.isSecure?{onClick:a=>this.setState({userMenuAnchor:a.currentTarget})}:{},children:[this.state.user.icon?jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.Icon,{src:this.state.user.icon,style:styles.userIcon}):jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_icons_mf_2_material__loadShare__.Person,{style:styles.userIcon}),jsxRuntimeExports.jsx("div",{ref:this.refUserDiv,style:{...styles.userText,color:((e=this.state.user)==null?void 0:e.color)||void 0},children:this.state.user.name})]}),this.socket.isSecure&&jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.Menu,{anchorEl:this.state.userMenuAnchor,open:!!this.state.userMenuAnchor,onClose:()=>this.setState({userMenuAnchor:null}),anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},children:jsxRuntimeExports.jsxs(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.MenuItem,{onClick:()=>{this.setState({userMenuAnchor:null}),App.logout()},children:[jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.ListItemIcon,{children:jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_icons_mf_2_material__loadShare__.Logout,{fontSize:"small"})}),jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.ListItemText,{children:iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.t("ra_Logout")})]})})]}):this.props.width!=="xs"&&this.props.width!=="sm"&&this.state.systemConfig.common.siteName?jsxRuntimeExports.jsx("div",{style:styles.siteName,children:this.state.systemConfig.common.siteName}):null}renderAlertSnackbar(){return jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.Snackbar,{style:styles[`alert_${this.state.alertType}`],open:this.state.alert,autoHideDuration:6e3,onClose:()=>this.handleAlertClose(),message:this.state.alertMessage})}renderDialogConfirm(){return this.state.dataNotStoredDialog?jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.DialogConfirm,{title:iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.t("ra_Please confirm"),text:iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.t("ra_Some data are not stored. Discard?"),ok:iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.t("ra_Discard"),cancel:iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.t("ra_Cancel"),onClose:e=>e?this.confirmDataNotStored():this.closeDataNotStoredDialog()}):null}renderExpertDialog(){return this.state.expertModeDialog?jsxRuntimeExports.jsx(ExpertModeDialog,{onClose:e=>{var a,n;e==="openSettings"?iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.Router.doNavigate(null,"system"):e?((window._sessionStorage||window.sessionStorage).setItem("App.expertMode",this.state.expertMode?"false":"true"),(n=(a=this.refConfigIframe)==null?void 0:a.contentWindow)==null||n.postMessage("updateExpertMode","*"),this.setState({expertModeDialog:!1,expertMode:!this.state.expertMode})):this.state.expertModeDialog&&this.setState({expertModeDialog:!1})},expertMode:this.state.expertMode}):null}renderShowGuiSettings(){return this.state.showGuiSettings?jsxRuntimeExports.jsxs(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.Menu,{anchorEl:this.state.showGuiSettings,open:!0,onClose:()=>this.setState({showGuiSettings:null}),children:[jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.MenuItem,{onClick:()=>{this.setState({showGuiSettings:null}),this.enableGuiSettings(!0)},children:iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.t("Use settings of other browsers")}),jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.MenuItem,{onClick:()=>{this.setState({showGuiSettings:null}),this.enableGuiSettings(!0,!0)},children:iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.t("Use settings of this browser")}),jsxRuntimeExports.jsxs(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.MenuItem,{onClick:()=>this.setState({showGuiSettings:null}),children:[jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.ListItemIcon,{children:jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_icons_mf_2_material__loadShare__.Close,{fontSize:"small"})}),jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.ListItemText,{children:iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.t("Cancel")})]})]}):null}renderToolbar(e){const a=(window._sessionStorage||window.sessionStorage).getItem("App.expertMode"),n=!a||a==="true"==!!this.state.systemConfig.common.expertMode,i=iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.Utils.getStyle(this.state.theme,styles.performed),o=this.state.noNotifications.warning+this.state.noNotifications.other;return jsxRuntimeExports.jsxs(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.Toolbar,{children:[jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.IconButton,{size:"large",edge:"start",style:{...styles.menuButton,...!e&&this.state.drawerState!==STATES.closed?styles.hide:void 0},onClick:()=>this.handleDrawerState(STATES.opened),children:jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_icons_mf_2_material__loadShare__.Menu,{})}),jsxRuntimeExports.jsxs("div",{style:styles.wrapperButtons,children:[jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.Tooltip,{title:iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.t("Notifications"),slotProps:{popper:{sx:styles.tooltip}},children:jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.IconButton,{size:"large",disableRipple:!o,style:{opacity:o?1:.3},onClick:o?()=>this.setState({notificationsDialog:!0}):null,children:jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.Badge,{badgeContent:this.state.noNotifications.other+this.state.noNotifications.warning,color:this.state.noNotifications.warning>0?"error":"secondary",max:99,children:jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_icons_mf_2_material__loadShare__.Notifications,{})})})}),jsxRuntimeExports.jsx(IsVisible,{name:"admin.appBar.discovery",config:this.adminGuiConfig,children:this.state.discoveryAlive&&jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.Tooltip,{title:iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.t("Discovery devices"),slotProps:{popper:{sx:styles.tooltip}},children:jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.IconButton,{size:"large",onClick:()=>iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.Router.doNavigate(null,"discovery"),children:jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_icons_mf_2_material__loadShare__.Visibility,{})})})}),jsxRuntimeExports.jsx(IsVisible,{name:"admin.appBar.systemSettings",config:this.adminGuiConfig,children:jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.Tooltip,{title:iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.t("System settings"),slotProps:{popper:{sx:styles.tooltip}},children:jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.IconButton,{size:"large",onClick:()=>iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.Router.doNavigate(null,"system"),children:jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_icons_mf_2_material__loadShare__.Build,{})})})}),this.toggleThemePossible?jsxRuntimeExports.jsx(IsVisible,{name:"admin.appBar.toggleTheme",config:this.adminGuiConfig,children:jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.ToggleThemeMenu,{size:"large",toggleTheme:this.toggleTheme,themeName:this.state.themeName,t:iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.t})}):null,jsxRuntimeExports.jsx(IsVisible,{name:"admin.appBar.expertMode",config:this.adminGuiConfig,children:jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.Tooltip,{title:`${iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.t("Toggle expert mode")} ${n?"":` (${iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.t("only in this browser session")})`}`,slotProps:{popper:{sx:styles.tooltip}},children:jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.Badge,{color:"secondary",variant:"dot",sx:{"& .MuiBadge-badge":styles.expertBadge},invisible:n,children:jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.IconButton,{size:"large",onClick:()=>{var r,l,h,d;!!this.state.systemConfig.common.expertMode==!this.state.expertMode?((window._sessionStorage||window.sessionStorage).setItem("App.expertMode",this.state.expertMode?"false":"true"),this.setState({expertMode:!this.state.expertMode}),(l=(r=this.refConfigIframe)==null?void 0:r.contentWindow)==null||l.postMessage("updateExpertMode","*")):(window._sessionStorage||window.sessionStorage).getItem("App.doNotShowExpertDialog")==="true"?((window._sessionStorage||window.sessionStorage).setItem("App.expertMode",this.state.expertMode?"false":"true"),this.setState({expertMode:!this.state.expertMode}),(d=(h=this.refConfigIframe)==null?void 0:h.contentWindow)==null||d.postMessage("updateExpertMode","*")):this.setState({expertModeDialog:!0})},style:{color:this.state.expertMode?this.state.theme.palette.expert:void 0},color:"default",children:jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.IconExpert,{style:{...styles.expertIcon,...this.state.expertMode?styles.expertIconActive:void 0}})})})})}),this.state.expertMode?jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.Tooltip,{title:iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.t("Synchronize admin settings between all opened browser windows"),slotProps:{popper:{sx:styles.tooltip}},children:jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.IconButton,{size:"large",onClick:r=>this.state.guiSettings?this.enableGuiSettings(!1):this.setState({showGuiSettings:r.target}),style:{color:this.state.guiSettings?this.state.theme.palette.expert:void 0},children:this.state.guiSettings?jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_icons_mf_2_material__loadShare__.CloudSync,{}):jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_icons_mf_2_material__loadShare__.SyncDisabled,{})})}):null,jsxRuntimeExports.jsx(IsVisible,{name:"admin.appBar.hostSelector",config:this.adminGuiConfig,children:jsxRuntimeExports.jsx(HostSelectors,{tooltip:this.state.currentTab.tab!=="tab-instances"&&this.state.currentTab.tab!=="tab-adapters"&&this.state.currentTab.tab!=="tab-logs"?iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.t("You can change host on Instances, Adapters or Logs pages"):void 0,themeType:this.state.themeType,expertMode:this.state.expertMode,socket:this.socket,hostsWorker:this.hostsWorker,currentHost:this.state.currentHost,setCurrentHost:(r,l)=>{this.setState({currentHostName:r,currentHost:l},async()=>{this.logsWorkerChanged(l),(window._localStorage||window.localStorage).setItem("App.currentHost",l),await this.readRepoAndInstalledInfo(l,this.state.hosts);const h=await this.hostsWorker.getNotifications(l);await this.handleNewNotifications(h)})},disabled:this.state.currentTab.tab!=="tab-instances"&&this.state.currentTab.tab!=="tab-adapters"&&this.state.currentTab.tab!=="tab-logs"})}),jsxRuntimeExports.jsx("div",{style:styles.flexGrow}),this.state.cmd&&!this.state.cmdDialog&&jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.IconButton,{size:"large",onClick:()=>this.setState({cmdDialog:!0}),children:jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_icons_mf_2_material__loadShare__.PictureInPictureAlt,{style:this.state.commandError?styles.errorCmd:this.state.performed?i:styles.cmd})})]}),this.renderLoggedUser(),this.state.drawerState!==STATES.opened&&!this.state.expertMode&&window.innerWidth>450&&jsxRuntimeExports.jsxs(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.Grid2,{container:!0,style:{...styles.avatarNotVisible,...this.state.drawerState!==STATES.opened?styles.avatarVisible:void 0},spacing:1,alignItems:"center",children:[this.state.user?null:jsxRuntimeExports.jsxs(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.Box,{component:"div",style:styles.wrapperName,children:[jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.Typography,{children:"admin"}),!this.adminGuiConfig.icon&&this.state.versionAdmin&&jsxRuntimeExports.jsxs(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.Typography,{style:{...styles.styleVersion,color:this.state.themeType==="dark"?"#ffffff80":"#00000080"},children:["v",this.state.versionAdmin]})]}),jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.Grid2,{children:jsxRuntimeExports.jsx("a",{href:"/#easy",onClick:r=>r.preventDefault(),style:{color:"inherit",textDecoration:"none"},children:this.adminGuiConfig.icon?jsxRuntimeExports.jsx("div",{style:{height:50,width:102,lineHeight:"50px",background:"white",borderRadius:5,padding:5},children:jsxRuntimeExports.jsx("img",{src:this.adminGuiConfig.icon,alt:"logo",style:{maxWidth:"100%",maxHeight:"100%"}})}):jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.Avatar,{onClick:()=>this.handleNavigation("easy"),style:this.state.themeName==="colored"||this.state.themeName==="blue"?styles.logoWhite:void 0,alt:"ioBroker",src:"img/no-image.svg"})})})]})]})}renderSampleError(){const e=this.state.hasGlobalError.message,a=this.state.hasGlobalError.stack;return jsxRuntimeExports.jsxs("div",{style:{textAlign:"center",fontSize:22,marginTop:50,height:"calc(100% - 50px)",overflow:"auto"},children:[jsxRuntimeExports.jsx("h1",{style:{color:"#F00"},children:"Error in GUI!"}),"Please open the browser console (F12), copy error text from there and create the issue on"," ",jsxRuntimeExports.jsx("a",{href:"https://github.com/ioBroker/ioBroker.admin/issues",target:"_blank",rel:"noreferrer",children:"github"}),jsxRuntimeExports.jsx("br",{}),"Without this information it is not possible to analyse the error.",jsxRuntimeExports.jsx("br",{}),"It should looks like ",jsxRuntimeExports.jsx("br",{}),jsxRuntimeExports.jsx("img",{src:"img/browserError.png",alt:"error"}),jsxRuntimeExports.jsx("br",{}),"If in the second line you will see"," ",jsxRuntimeExports.jsx("code",{style:{color:"#888",fontFamily:"monospace",fontSize:16},children:"at :3000/static/js/main.chunk.js:36903"})," ","and not the normal file name,",jsxRuntimeExports.jsx("br",{}),'please try to reproduce an error with opened browser console. In this case the special "map" files will be loaded and the developers can see the real name of functions and files.',jsxRuntimeExports.jsx("div",{style:{color:"#F88",fontSize:14,marginTop:20},children:e}),jsxRuntimeExports.jsx("pre",{style:{color:"#F88",fontSize:12,fontFamily:"monospace",textAlign:"left",marginTop:20,padding:20},children:(a||"").toString().split(`
|
|
296
|
+
您可以根据消息类别自由配置用于通知的适配器(如 Telegram)。如果您最喜欢的消息适配器崩溃了,您也可以配置一个替代消息适配器来接管。`,Notifications,"notifications wizard category":"此类别中的适配器允许您收到系统中的事件通知并向您发送个性化消息。",Nov,November,"Now the expert mode will be active only during this browser session.":"现在,专家模式将仅在此浏览器会话期间处于活动状态。","Now the expert mode will be deactivated only during this browser session.":"现在,仅在此浏览器会话期间将停用专家模式。",NPM,"npm error":"npm错误",npm_warning,number,"Number of files":"文件数",object,'Object "<b>%s</b>" does not exists. Update the page.':'设备"<b>%s</b>"不存在。更新页面。',"Object data":"对象数据","Object does not exist!":"对象不存在!","Object may not be deleted":"设备可能无法删除","object permissions":"设备权限","Object rights":"设备权限","object(s)":"对象",Objects:Objects$1,Oct,October,of,Offline,ok,Ok,Oman,'On Windows first please call in the start menu under "ioBroker" the command line of the relevant ioBroker instance. The correct directory is then set automatically. On Linux or macOS please go to the ioBroker directory.':"在Windows上,请首先在ioBroker实例的命令行下的“ ioBroker”下调用开始菜单。然后将自动设置正确的目录。在Linux或macOS上,请转到ioBroker目录。",once,"only in this browser session":"仅在此浏览器会话中","Only one":"只有一个","Only selected":"只选","Only tgz files are allowed":"仅允许 .tgz 文件","Open charts in new window":"在新窗口中打开图表","Open original":"在新标签页上打开","Open repository":"公开资料库","open web page":"打开插件的网页",Optional,"Optional. Always relative to iobroker.js-controller/":"选修的。始终相对于iobroker.js-controller/","Or install from a file":"或从文件安装","or reboot server, then ioBroker should restart and you can be sure that all old processes were finished.":"或重新启动服务器,然后ioBroker应该重新启动,并且您可以确保所有旧进程都已完成。","Or select from the list":"或从列表中选择","Ordered at":"订购于",os,OS,"other permissions":"其他权限","Otherwise please update the slaves first with an update of master-slave systems and the master last!":"否则,请先更新主从系统,然后再更新主服务器,以更新从服务器!","output events":"输出事件",Owner,"Owner group":"所有者组","Owner user":"所有者用户",Pakistan,Palau,Palestine,Panama,"Papua New Guinea":"巴布亚新几内亚",Paraguay,Parent,"Parent ID":"父母身份证","parent name":"父节点名字","Parse error":"解析错误",password,Password,"Password and confirmation are not equal!":"两次输入密码不相同!","Password cannot be empty!":"密码不能为空!","Password must be at least 8 characters long and have numbers, upper and lower case letters":"密码必须至少包含8个字符,并且包含数字,大写和小写字母","Password repeat":"密码重复","Passwords are not equal":"密码不相等",Path,"Path to storage:":"存储路径","Pause output":"暂停输出","Performing this update will restart the js-controller afterwards!":"执行此更新后将重新启动 js-controller!这会将您的 Node.js 版本更新为配置的 apt 源中可用的最新版本。",permissionError,Permissions,Peru,Philippines,PID,Pitcairn,"place here":"将文件放在这里","Place your files here or click here to open the browse dialog":"将文件放在此处或单击此处以打开浏览对话框",planned,platform,Platform,"Please confirm":"请确认","Please execute the following commands in an SSH shell (console):":"请在SSH Shell(控制台)中执行以下命令:","Please make sure you know what you are doing!":"请确保您知道自己在做什么!","Please read these important notes:":"请阅读以下重要说明:","Please select country":"请选择国家","Please select specific version of %s":"请选择 %s 的特定版本","Please select the rooms that exist in your home. You can add or remove rooms later in the categories tab.":"请选择您家中现有的房间。稍后您可以在类别选项卡中添加或删除房间。","Please wait for an official release!":"请等待正式发布!",Plugins,point,Poland,popular,Popular,"Popular first":"最热门","Popup for any custom information.":"弹出任何自定义信息。",Port,"Port forwarding":"转发端口","Port to check the domain:":"用于检查域的端口",Portugal,"Preserve ID":"保留ID","Press ALT-key to copy":"按 ALT 键复制","Press CTRL+ENTER to write the value, when focused":"聚焦后按CTRL + ENTER写入值","Press ENTER to write the value, when focused":"聚焦后按ENTER输入值",press_discover,Preview,process:process$1,processes,"Processing...":"处理中...",Product,Protocol,protocols_group,"Puerto Rico":"波多黎各","pushover wizard description":"有了 ioBroker Pushover 适配器,您就可以自己向安卓和 iOS 设备发送信息,并使用 Pushover API 的各种功能。通过这些功能,您不仅可以发送简单的文本信息,还可以附加图片和其他文件。您还可以通过设置不同的优先级或为不同事件设置特定的声音,根据个人需要定制通知。",Qatar,Quality,RAM,"RAM limit":"RAM限制","RAM total usage:":"总RAM使用量:","RAM usage":"RAM使用情况",Rate,"Rate how good this version of the adapter works on your system. You can vote for every new version.":"评估此版本的适配器在系统上的运行情况。您可以为每个新版本投票。","Rating for":"评分",raw,read,"Read converter":"读转换器","read only":"只读","read operation":"读","Read timeout":"读取超时","Read to the end for accept":"阅读完后接受",Readable,readme,Readme,"Really delete credential %s?":"确实要删除凭据 %s 吗?",Rebuild,"Rebuild tree":"重建设备树","Recently updated":"最近更新","Redirect in %s second(s)":"5 秒后重定向","Redis password":"Redis密码","Refresh log":"刷新日志",Relative,reload,Reload,"reload instance":"重新加载程序","Remote host of the HTTP logging endpoint":"HTTP日志记录端点的远程主机","Remote port of the HTTP logging endpoint":"HTTP日志记录端点的远程端口","Remote URI of the HTTP logging endpoint":"HTTP日志记录端点的远程URI",Remove,"Remove attribute %s":"删除属性 %s","Remove color":"去除颜色","Remove filter for updatable adapters":"Remove filter for updatable adapters","Remove icon":"删除图标",Removed,"Removing of adapter...":"删除插件...","Removing of instance...":"删除程序...",Rename,"Rename all children":"重命名所有子项","Rename or copy object":"重命名或复制对象",repeat,"Repeat administrator password":"重复管理员密码","Repeat password is not equal with password":"重复的密码不等于密码!",Replace,repo_update_hint,Repositories,repository,"Repository data last updated: %s":"存储库数据最后更新时间:%s","Repository data last updated: %s (oldest from %s)":"存储库数据上次更新:%s(最早的 %s)","Repository timestamps (oldest from %s):":"存储库时间戳(最早的时间戳来自 %s):","Repository timestamps:":"存储库时间戳:","Requesting data...":"正在请求数据...",Reset,rest,restart,Restart,"Restart adapter after install":"安装后重启适配器","Restart host":"重新启动主机","restart script":"重启自动化","Restart works only if controller started as system service.":"仅当控制器作为系统服务启动时,重新启动才有效。",restartLoop,"Restore from backup":"从备份恢复","Restore repository list to default":"将存储库列表恢复为默认值","Retry maximum count":"重试最大计数","Retry maximum delay":"重试最大延迟",Reunion,"Reverse output direction":"输出方向相反",Review,Rights,role,Role,Romania,Room,Rooms,"Run npm install iobroker.js-controller there. A specific version can be installed using npm install iobroker.js-controller@x.y.z (replace x.y.z with the desired version).":"在此处运行npm install iobroker.js-controller。可以使用“ npm install iobroker.js-controller@x.y.z”安装特定版本(将“ x.y.z”替换为所需的版本)。","Running command":"运行命令","Running: ":"运行:","Runs as web-extension":"作为网络扩展运行",runtime,"Russian Federation":"俄罗斯联邦",Rwanda,"Saint Kitts and Nevis":"圣基茨和尼维斯","Saint Lucia":"圣卢西亚","Saint Vincent and the Grenadines":"圣文森特和格林纳丁斯",Samoa,"San Marino":"圣马力诺","Sao Tome and Principe":"圣多美和普林西比",Sat,"Saudi Arabia":"沙特阿拉伯",save,Save,"Save & close":"保存并关闭","Save & Close":"保存并关闭","Save as image":"另存为图像","Save configuration":"保存配置","Save configuration?":"保存配置?","Save Objecttree as JSON File":"将设备树保存为JSON文件","Save Objecttree is not possible":"无法保存设备树","saved:":"已保存:","scenes wizard description":'使用 ioBroker 场景适配器,您可以将多个数据点组合到场景中,只需点击一下即可触发复杂的操作。试想一下,创建一个名为 "影院 "的场景,在这个场景中,Harmony Hub 会打开所有必要的设备,调暗灯光,并在屏幕降低时打开阅读灯。您还可以设置群组,根据场景的活动或非活动状态,为每个场景定义两种不同的连接数据点状态。',schedule,schedule_group,Script,script_group,Scripts,"See on github":"见github","Seems that you have slow connection. Do you want to increase timeout interval?":"似乎您的连接速度很慢。您是否要增加超时间隔?",Select,"Select adapter":"选择适配器","Select adapter:":"选择插件","Select file":"选择文件","Select host to add the instance":"选择主机添加实例","Select ID":"选择ID","Select language":"选择语言","select member by double click":"双击选择成员","Select methods":"选择方法","Select options":"选择选项","Select predefined icon":"选择预定义的图标","Select the rooms in your home":"选择您家中的房间","Select type of export":"选择导出类型","Select/Unselect all":"全选/取消全选","Selected %s object(s)":"已选择%s个对象","Selected adapters":"选定的适配器","sendto operation":"发送操作",Senegal,"Sent data:":"已发送数据",Sep,September,"SEQ log":"序列日志",Serbia,"serial number (UUID) in license is for other device":"许可证中的序列号 (UUID) 用于其他设备","Server URL":"服务器网址",service_group,"Session expire in %s":"会话在%s中过期",Set:"组","Set administrator password":"设置管理员密码","Set CRON":"设置 CRON","Set CRON schedule for restarts":"设置重启的CRON计划","Set tier for %s":"为%s设置等级","Set timeout to 1 minute":"将超时设置为1分钟","Set value":"设定值",Settings,"Settings %s":"设定 %s","Settings for %s":"%s的设置","Settings saved":"设置已保存",severity,Seychelles,"Show / hide List":"显示/隐藏列表","Show change log":"显示更改日志","Show comments in language":"以语言显示评论","Show error in log if RAM less than":"如果RAM小于,则在日志中显示错误","Show errors":"显示错误","Show errors and warnings":"显示错误和警告","Show help for this adapter":"显示此适配器的帮助","show ignored":"显示被忽略","Show instances only for current host":"仅显示当前主机的程序","Show instructions":"显示指示","Show less":"显示较少","Show lines":"显示线路","Show list view":"显示清单检视","Show members":"显示成员","Show more":"显示更多","Show more info":"显示更多信息","Show only installed":"仅显示已安装的适配器","Show only running instances":"仅显示正在运行的实例","Show running or stopped instances":"显示正在运行或已停止的实例","Show sent statistics data":"显示已发送的统计数据","show suggested":"显示建议","Show tree view":"显示树状视图","Show values of instance":"显示程序的值","Show warning im log if RAM less than":"如果RAM小于,则显示警告即时日志","Show whole changelog":"显示整个变更日志","Show...":"节目...","Show/hide colors":"显示/隐藏颜色","show/hide item":"显示/隐藏项目","Show/hide PID":"显示/隐藏进程ID","Showed only installed adapters":"仅显示已安装的适配器","Showed only installed adapters without instance.":"仅显示已安装的适配器,没有实例。","Showed only running instances":"仅显示正在运行的实例","Showed only stopped instances":"仅显示停止的实例","Sierra Leone":"塞拉利昂","signal-cmb wizard description":"有了 ioBroker Signal-CMB 适配器,您就可以使用 Signal 信使通过 CallMeBot 服务发送消息。支持文本内容和表情符号,让您的信息栩栩如生。用户可以方便地了解智能家居中发生的事件,即使在旅行中也能始终掌握最新信息。",Silent,silly,Singapore,"Single-Sign On disconnected":"单点登录已断开连接","Site name":"站点名称","Size: %s, Free: %s":"大小:%s,可用:%s","Skip discovery process and go to install with last scan results":"跳过发现过程并使用上次扫描结果进行安装",Slovakia,Slovenia,"Solomon Islands":"所罗门群岛",Somalia,"Some data are not stored. Discard?":"某些数据未存储。放弃保存吗?","Some updates available":"一些可用的更新","Sorry, you cannot use ioBroker.":"抱歉,您不能使用ioBroker。","Sort alphabetically":"按名称按字母顺序排序","Sort by":"排序方式","Sort direction":"排序方向",Source,"Source (show all)":"来源(显示全部)","South Africa":"南非","South Georgia South Sandwich Islands":"南乔治亚南桑威奇群岛",Spain,Speed,"sql wizard description":"使用 ioBroker SQL 适配器,您可以记录数据,以便对其进行长期可视化或历史分析。SQL 适配器将数据写入外部 SQL 数据库,该数据库可在同一主机或不同主机上运行。也支持 SQLite 数据库。与历史适配器相比,SQL 更适合记录大量数据,但需要手动设置。","Sri Lanka":"斯里兰卡",SSL,"St. Helena":"圣赫勒拿岛","St. Pierre and Miquelon":"圣皮埃尔和密克隆",stable,"Start date":"开始日期","Start order (tier)":"起始订单(等级)","Start time":"开始时间","Start update":"开始升级","Start wizard":"启动向导","Start/stop":"开始/停止","Started...":"开始中...",state,State,"State does not exist":"国家不存在","state permissions":"状态权限","State type":"状态类型","State type":"状态类型",States,"States rights":"状态权限",Statistics,"Statistics:":"统计",Status,"Stay signed in":"保持登录","Step type":"台阶式",stepEnd,stepMiddle,stepStart,"Stop on error":"错误停止",stop_admin,"Storage of %s":'存储<span class="name">%s</span>',"Storage of %s states":'存储<span class="name">%s</span>状态',storage_group,"Store file interval":"存储文件间隔","Stream log":"流日志",string,subscribe,"Success!":"成功!",Sudan,Suggestion,Sun,sunday,Sunday,"Suppress for 5 minutes":"抑制5分钟",Suriname,"Svalbard and Jan Mayen Islands":"斯瓦尔巴群岛和扬马延岛",Swaziland,Sweden,switch:"开关",switch_db_note,Switzerland,"Synchronize admin settings between all opened browser windows":"在所有打开的浏览器窗口之间同步管理设置","Syrian Arab Republic":"阿拉伯叙利亚共和国",Syslog,"Syslog facility to use (Default: local0).":"要使用的Syslog工具(默认值:local0)。","SysLog Type":"SysLog类型",System,"System language:":"系统语言","System settings":"系统","System uptime":"系统正常运行时间",Table,Taiwan,Tajikistan,Tanzania,"telegram wizard description":"有了 ioBroker Telegram 适配器,您就可以通过 Telegram Messenger 向自己发送信息,这样当系统发生变化时,您就可以随时了解最新情况。除文本信息外,您还可以发送图片和其他文件。您甚至可以发送问题,并直接在 ioBroker 中处理答案。","Temperature unit":"温度单位","Temperature units":"温度单位","Temperature units:":"温度单位",Template,"temporary log level":"临时日志级别",terminal,Thailand,"The adapter can be used free of charge.":"该适配器可免费使用。","The adapter has a limited functionality without a paid license.":"如果没有付费许可证,该适配器的功能有限。","The adapter requires a paid license for commercial use.":"该适配器需要付费许可证才能用于商业用途。","The adapter requires a paid license.":"该适配器需要付费许可证。","The apiKey of the seq system":"seq系统的apiKey","The changes will be applied to %s states. Are you sure?":"所做的更改将应用于%s个州。你确定吗?","The Cloud services from iobroker.net/pro can help here to do that securely:":"iobroker.net/pro的Cloud服务可以帮助您安全地执行此操作:","The current selected configuration will allow to automatically pull in incompatible changes of this adapter!":"当前选定的配置将允许自动引入此适配器的不兼容更改!","The device or service delivers the new state actively":"设备或服务主动传递新状态","The device or service will be periodically asked":"会定期询问设备或服务","The end of line character to be added to the end of the message (Default: Message without modifications).":"要添加到消息末尾的行尾字符(默认值:不做任何修改的消息)。","The expert mode allows you to view and edit system internal details.":"专家模式可让您查看和编辑系统内部详细信息。","The host running syslogd, defaults to localhost":"运行syslogd的主机,默认为localhost","The http(s) URL including port of the seq server. If you use HTTPS a real certificate is needed; self signed certs are ot accepted.":"http(s)URL,包括seq服务器的端口。如果您使用HTTPS,则需要一个真实的证书。可以接受自签名证书。","The JSONL DB is append-only and will contain unnecessary entries after a while.":"JSONL DB 是仅附加的,一段时间后将包含不必要的条目。","The name of the application (Default: process.title).":"应用程序的名称(默认:process.title)。","The path to the syslog dgram socket (i.e. /dev/log or /var/run/syslog for OS X).":"syslog dgram套接字的路径(对于OS X,即/ dev / log或/ var / run / syslog)。","The port on the host that syslog is running on, defaults to syslogd's default port(514/UDP).":"运行syslog的主机上的端口,默认为syslogd的默认端口(514 / UDP)。","The sent data will only be processed by ioBroker GmbH for statistical purposes and will not be shared with any third parties.":"发送的数据仅由 ioBroker GmbH 用于统计目的处理,不会与任何第三方共享。","The type of the syslog protocol to use (Default: BSD).":"要使用的syslog协议的类型(默认值:BSD)。","These options can reduce the size of the export file:":"这些选项可以减小导出文件的大小:","third-party_group":"第三方","this 2 weeks":"这2个星期","This adapter cannot be installed from git as must be built before installation.":"无法从git安装此适配器,因为必须在安装前先进行构建。","this adapter does not allow multiple instances":"此插件不允许多个程序同时运行","This content cannot be loaded because it uses insecure HTTP protocol.":"无法加载此内容,因为它使用了不安全的 HTTP 协议。","This credential is used by":"此凭据被以下实例使用","this day":"这天","This feature is supported up from js-controller Kiera (Version 6)!":"该功能从 js-controller Kiera (版本 6) 开始支持!","This is the recommended option":"这是推荐的选项","this month":"这个月","This name will be shown in admin's header. Just to identify the whole installation":"该名称将显示在管理员的标题中。只是为了识别整个安装","This object does not used in any aliases yet":"该对象尚未在任何别名中使用","This object is used in aliases":"该对象用于别名",'This version of node.js "%s" on "%s" is deprecated. Please install node.js 6, 8 or newer':'ioBroker支持LTS版本6,8,10,12或更新的node.js.请将主机"%s"上的版本("%s")更新为其中一个受支持的版本。我们建议使用Node.js 10。',"This way is only necessary in very few cases and please consult the forum beforehand!":"仅在极少数情况下才需要这种方式,请事先咨询论坛!","this week":"本星期","this year":"今年",Thu,Tiers,"Tiers define the order of adapters when the system starts.":"层定义了系统启动时适配器的顺序。",time,Time,"Time From":"时间从","Time stamp":"时间戳","Time To":"时间到","time-and-date_group":"时间和日期",timeOffset,'Tip: Use the "notification-manager" adapter to receive notifications automatically via messaging adapters.':"提示:使用“通知管理器”适配器通过消息传递适配器自动接收通知。",title,Title,To,"to apply one item":"申请一件","to apply with children":"申请项目和儿童","to fix these issues and upgrade command run again.":"解决这些问题并再次运行upgrade命令。",today,Today,"Toggle expert mode":"切换专家模式","Toggle states view":"切换状态视图",Togo,Tokelau,Tonga,"Too many events":"太多事件",tooltip_ack,tooltip_copyState,tooltip_customConfig,tooltip_deleteObject,tooltip_editObject,tooltip_editState,tooltip_from,tooltip_lc,tooltip_quality,tooltip_ts,tooltip_user,tooltip_value,"Total adapters":"适配器总数","Total count in group":"小组总数","Total RAM usage":"总RAM使用量","Total rating:":"总评分:","Translated from %s":"从%s翻译","Trigger event":"触发事件","Trinidad and Tobago":"特立尼达和多巴哥",true:"正常",ts,Tue,Tunisia,Turkey,Turkmenistan,"Turks and Caicos Islands":"特克斯和凯科斯群岛",Tuvalu,type,Type,"Type of result is not as expected: %s":"结果类型与预期不符: %s",Uganda,Ukraine,"Uncheck All":"取消所有",Understand,"Unique name":"唯一名称",unit,"United Arab Emirates":"阿拉伯联合酋长国","United Kingdom":"英国","United States":"美国","United States minor outlying islands":"美国小型离岛","Unknown error":"未知错误","Unknown file format!":"未知的文件格式!",'Unknown type: use in name "private", "public" or "chained" to define the certificate type':"未知类型:在名称中使用“private”、“public”或“chained”来定义证书类型",Unsecure_Auth,"Unsupported image format":"不支持的图像格式",update,Update,'Update "%s" to v%s':"将“ %s”更新为v%s","Update %s adapter(s)":"更新 %s 适配器","update adapter information":"更新插件信息","Update all adapters":"更新所有适配器","Update info adapter":"更新信息插件","Update objects":"更新设备","Update role for %s":'设置 "%s"的角色',"Update states":"更新状态","Update view":"更新视图",update_info_no_net,updated,Updated,updates,"updating %s to %s...":"更新 %s 到 %s...","Updating %s...":"更新 %s..",Upgrade,"Upgrade all adapters":"升级所有插件",upload,Upload,"Upload adapter after install":"安装后上传适配器","Upload admin started":"开始上传配置","Upload failed":"上传失败","Upload started...":"上传已开始...",Uptime,URL:URL$1,"URL or file path":"URL 或文件路径(Tarball)","URL or file path:":"URL或文件路径",Uruguay,"Use convert functions":"使用转换功能","Use following methods:":"使用以下方法:","use GitHub for issues":"我们重视您对我们软件的评分和想法。对于错误报告,请使用我们的 GitHub 问题跟踪器,当您留下评论时,请考虑未解决的问题可能会影响您的体验。您的反馈有助于我们改善。感谢您成为我们社区的一部分!","Use last scan":"使用上次扫描","Use Lets Encrypt certificates:":"使用Let's Encrypt证书","Use self signed certificates":"使用自签名证书","Use settings of other browsers":"使用其他浏览器的设置","Use settings of this browser":"使用此浏览器的设置","Use Single-Sign On":"使用单点登录","Use this button:":"使用此按钮:","Use this instance for automatic update:":"使用此程序进行自动更新","Used by":"使用人","Used for sentinels":"用于前哨","Used only to calculate position.":"仅用于计算位置。",User,"User deleted":"用户已删除","User does not exist":"用户不存在","User parameters":"用户参数","user permissions":"用户权限","User yet exists":"用户已存在",users,Users:Users$1,"users permissions":"用户权限",utility_group,UUID,Uzbekistan,V,val,"Valid till":"有效期至",value:value$1,Value,"Value type":"值类型","value.from":"来自于","value.lc":"上次更新","value.q":"质量","value.ts":"时间戳","value.val":"值","Values of %s":"%s的值",Vanuatu,"Vatican City State":"梵蒂冈城",vehicle_group,Venezuela,version,Vietnam,View,"View file in state: %s":"查看文件状态:%s","View: %s":"查看: %s","Virgin Islands (British)":"维尔京群岛(英属)","Virgin Islands (U.S.)":"维尔京群岛(美国)",vis_group,"vis-2 wizard description":"ioBroker Vis 2 适配器是为您的智能家居提供的现代化、功能强大的可视化解决方案。有了这个适配器,您就可以根据自己的意愿,用现代小部件创建自己的可视化系统。无论您是想将仪表盘设计成简约风格还是具有多种功能,都有无限可能。按自己喜欢的方式设计智能家居界面吧!",visualisation_group,Visualization,"visualization wizard category":"借助此类适配器,您可以构建仪表板以通过 ioBroker Visu 应用程序或 Web 界面控制您的家庭。",visualization_group,"visualization-icons_group":"可视化图标","visualization-widgets_group":"可视化小部件",vote,"Vote:":"投票:",vote21,votes,votes2,"Waiting for admin restart...":"等待管理员重启...","Waiting for connection of ioBroker...":"等待连接 ioBroker...","Wallis and Futuna Islands":"瓦利斯群岛和富图纳群岛",warn,"Warning: Free space on disk is low":"警告:磁盘上的可用空间不足!","Warning!":"警告!",Warning1,Warning2,weather,Weather,"weather wizard category":"通过天气适配器,您可以获得当地天气信息并将其用于可视化和自动化。",weather_group,"weatherunderground wizard description":"有了 ioBroker Weather Underground 适配器,您就可以在 ioBroker 中使用天气数据。例如,这意味着下雨时可以提醒您关闭打开的窗户,或者在暴风雨来临时自动收回遮阳篷。这样,您的智能家居就能更好地适应当前的天气条件,确保更加舒适和安全。",Wed,"Week starts with":"周始于",Welcome,"Western Sahara":"撒哈拉沙漠西部",wetty,"When activated this host can be discovered by other iobroker installations in your network to become the master of a multihost system.":"激活后,该主机可以被网络中的其他ioBroker安装发现,成为多主机系统的主机。","When enabled adapter instances can run in one or few processes to save RAM usage.":"启用后,适配器实例可以在一个或几个进程中运行以节省RAM使用量。","Wide all":"全部宽","Will be reset to the saved log level after restart of adapter":"重新启动适配器后将重置为保存的日志级别",With,"with js-controller":"带有 js 控制器","With password":"带密码",Without,"Without restart":"无需重启","wizard adapter general description":'从您希望直接安装的适配器中进行选择。您可以稍后在 "适配器 "选项卡中安装其他适配器。',"Would you like to restart the controller for your changes to take effect?":"您想重新启动控制器以使更改生效吗?",write,Write,"Write converter":"写转换器","write operation":"写","Write to the database file no more than every X milliseconds":"写入数据库文件不超过每 X 毫秒","Write value":"写值",Writeable,"Wrong dependencies":"错误的依赖关系",wrongPassword,Yemen,Yes,yesterday,"You are going to add new instance:":"您将要添加新程序:","You can change host on Instances, Adapters or Logs pages":"您可以在实例、适配器或日志页面上更改主机","You can change the host name, but be aware, that all instances must be assigned anew":"您可以更改主机名,但请注意,必须重新分配所有实例","You can check changelog here":'您可以查看更改日志<a href="https://github.com/ioBroker/ioBroker.js-controller/blob/master/CHANGELOG.md" target="_blank">此处</a>',"You can drag and drop list items for reorder":"您可以拖放列表项以重新排序","You can drag users to groups.":"您可以将用户拖动到组中。","You can drag&drop the devices, channels and states to enums":"您可以将设备,通道和状态拖放到分类中","You can drag&drop users to groups":"您可以将用户拖放到组中","You can export all objects or just the selected branch.":"您可以导出所有对象或仅导出选定的分支。","You can set the log level permanently in the base host settings":"您可以在主机基础设置中永久设置日志级别","You can't see events via cloud":"您无法通过云查看事件","You cannot delete host, when it is alive":"你不能删除主机,当它还活着","You have unread news!":"您有未读新闻!","You have unsaved changes":"您有未保存的更改","You must set the administrator password":"您必须设置管理员密码","You voted for %s on %s":"您在年对v%s投了赞成票%s","You want to move %s states with enabled history":"您想要移动已启用历史记录的 %s 个状态","Your are intend to edit ALL objects. Are you sure?":"您要编辑所有对象。您确定吗?","Your comment":"你的评论","Your communication with admin is not encrypted":"您与管理员的通讯未加密","Your home":"你的家","YYYY.MM.DD":"YYYY.MM.DD",Zaire,Zambia,Zimbabwe},Adapters=React.lazy(()=>__vitePreload(()=>import("./Adapters-B5_jQ7DE.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35]),import.meta.url)),Instances=React.lazy(()=>__vitePreload(()=>import("./Instances-YdaGnS5a.js"),__vite__mapDeps([36,1,2,3,4,5,6,7,8,9,11,37,21,16,17,38,39,15,10,18,19,20,22,23,24,25,26,27,28,29,30,31,32,33,34,35]),import.meta.url)),Intro=React.lazy(()=>__vitePreload(()=>import("./Intro-DkwRiz1n.js"),__vite__mapDeps([40,1,2,3,4,5,6,7,11,17,16,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35]),import.meta.url)),Logs=React.lazy(()=>__vitePreload(()=>import("./Logs-CsVPSLJH.js"),__vite__mapDeps([41,1,2,3,4,5,6,7,8,9,11,16,17,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35]),import.meta.url)),Files=React.lazy(()=>__vitePreload(()=>import("./Files-Cd2HOzIE.js"),__vite__mapDeps([42,1,2,3,4,5,6,7,11,20,18,21,22,23,24,25,26,27,28,29,30,16,17,31,32,33,34,35]),import.meta.url)),Objects=React.lazy(()=>__vitePreload(()=>import("./Objects-DPan0bzw.js"),__vite__mapDeps([43,1,2,3,4,5,6,7,11,44,21,23,8,9,13,14,18,20,22,24,25,26,27,28,29,30,16,17,31,32,33,34,35,45]),import.meta.url)),Users=React.lazy(()=>__vitePreload(()=>import("./Users-BgnBRgwU.js"),__vite__mapDeps([46,1,2,3,4,5,6,11,47,7,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,20,21,22,23,24,25,26,27,28,29,30,16,17,31,32,33,34,35]),import.meta.url)),Enums=React.lazy(()=>__vitePreload(()=>import("./Enums-DbWYxKOo.js"),__vite__mapDeps([70,1,2,3,4,5,6,11,47,7,8,9,26,71,20,21,22,23,24,25,27,28,29,30,16,17,31,32,33,34,35]),import.meta.url)),CustomTab=React.lazy(()=>__vitePreload(()=>import("./CustomTab-B0wqoazH.js"),__vite__mapDeps([72,1,2,3,4,5,6,7,44,11,21,20,22,23,24,25,26,27,28,29,30,16,17,31,32,33,34,35]),import.meta.url)),DeviceManagerTab=React.lazy(()=>__vitePreload(()=>import("./DeviceManager-BFmQeYQ1.js"),__vite__mapDeps([73,1,2,3,4,5,6,20,11,21,22,23,24,25,26,7,27,28,29,30,16,17,31,32,33,34,35]),import.meta.url)),Hosts=React.lazy(()=>__vitePreload(()=>import("./Hosts-Bg8QzW5i.js"),__vite__mapDeps([74,1,2,3,4,5,6,7,11,9,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35]),import.meta.url)),EasyMode=React.lazy(()=>__vitePreload(()=>import("./EasyMode-B1d9Vdc4.js"),__vite__mapDeps([75,1,2,3,4,5,6,7,11,37,21,16,17,20,22,23,24,25,26,27,28,29,30,31,32,33,34,35]),import.meta.url)),query={};(window.location.search||"").replace(/^\?/,"").split("&").forEach(t=>{const e=t.split("=");e[0]&&(query[e[0]]=e[1]===void 0?!0:decodeURIComponent(e[1]))});const styles={root:{display:"flex",height:"100%"},appBar:t=>({transition:t.transitions.create(["margin","width"],{easing:t.transitions.easing.sharp,duration:t.transitions.duration.leavingScreen})}),logoWhite:{backgroundColor:"#FFFFFF"},appBarShift:t=>({width:`calc(100% - ${DRAWER_FULL_WIDTH}px)`,ml:DRAWER_FULL_WIDTH/8,transition:t.transitions.create(["margin","width"],{easing:t.transitions.easing.easeOut,duration:t.transitions.duration.enteringScreen})}),appBarShiftEdit:t=>({width:`calc(100% - ${DRAWER_EDIT_WIDTH}px)`,ml:DRAWER_EDIT_WIDTH/8,transition:t.transitions.create(["margin","width"],{easing:t.transitions.easing.easeOut,duration:t.transitions.duration.enteringScreen})}),appBarShiftCompact:t=>({width:`calc(100% - ${DRAWER_COMPACT_WIDTH}px)`,ml:DRAWER_COMPACT_WIDTH/8,transition:t.transitions.create(["margin","width"],{easing:t.transitions.easing.easeOut,duration:t.transitions.duration.enteringScreen})}),menuButton:{marginRight:16},hide:{display:"none"},content:t=>{var e,a,n;return{flexGrow:1,padding:1,transition:t.transitions.create("margin",{easing:t.transitions.easing.sharp,duration:t.transitions.duration.leavingScreen}),overflowY:"auto",mt:`${(e=t.mixins.toolbar)==null?void 0:e.minHeight}px`,"@media (min-width:0px) and (orientation: landscape)":{mt:(a=t.mixins.toolbar["@media (min-width:0px) and (orientation: landscape)"])!=null&&a.minHeight?`${t.mixins.toolbar["@media (min-width:0px) and (orientation: landscape)"].minHeight}px`:void 0},"@media (min-width:600px)":{mt:(n=t.mixins.toolbar["@media (min-width:600px)"])!=null&&n.minHeight?`${t.mixins.toolbar["@media (min-width:600px)"].minHeight}px`:void 0}}},contentMargin:{ml:-DRAWER_FULL_WIDTH/8},contentMarginEdit:{ml:-DRAWER_EDIT_WIDTH/8},contentMarginCompact:{ml:-DRAWER_COMPACT_WIDTH/8},contentShift:t=>({transition:t.transitions.create("margin",{easing:t.transitions.easing.easeOut,duration:t.transitions.duration.enteringScreen}),ml:0}),expertIcon:{width:22,height:22},expertIconActive:{},baseSettingsButton:{color:"red"},alert_info:{},alert_error:{backgroundColor:"#f44336"},alert_success:{backgroundColor:"#4caf50"},avatarNotVisible:{opacity:0,marginLeft:5,transition:"opacity 0.3s",width:"initial"},avatarVisible:{opacity:1},cmd:{animation:"1s linear infinite alternate $myEffect",opacity:.2},errorCmd:{color:"#a90000",animation:"0.2s linear infinite alternate myEffect2"},performed:t=>({color:t.palette.mode==="light"?"#3bfd44":"#388e3c",animation:"0.2s linear infinite alternate myEffect2"}),wrapperButtons:{display:"flex",marginRight:"auto",overflowY:"auto",alignItems:"center"},flexGrow:{flexGrow:2},userBadge:{lineHeight:"48px",display:"inline-block"},userIcon:{borderRadius:4,width:44,height:44,verticalAlign:"middle",marginLeft:10,marginRight:10},userText:{verticalAlign:"middle",fontSize:16,maxWidth:250,marginRight:10,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",display:"inline-block"},userBackground:t=>({borderRadius:1,backgroundColor:t.palette.mode==="dark"?"#EEE":"#222",p:.5}),styleVersion:{fontSize:10},wrapperName:{display:"flex",flexDirection:"column",marginRight:10},expertBadge:{mt:"11px",mr:"11px"},siteName:{lineHeight:"48px",fontSize:24,marginLeft:10,marginRight:10,display:"inline-block",verticalAlign:"middle"},tooltip:{pointerEvents:"none"}},DEFAULT_GUI_SETTINGS_OBJECT={_id:"",type:"state",common:{name:"Admin settings",type:"boolean",read:!0,write:!1,role:"state"},native:{localStorage:{},sessionStorage:{}}};class App extends iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.Router{translations;_tempAllStored=!0;refConfigIframe=null;refUser;refUserDiv;expireInSecInterval=null;toggleThemePossible;adminGuiConfig;logsWorker;instancesWorker;hostsWorker;adaptersWorker;objectsWorker;guiSettings;localStorageTimer=null;languageSet;socket;adminInstance="";newsInstance=0;doNotAskSessionExpiration=0;tabsInfo=null;constructor(e){super(e);try{window.alert=i=>{i&&i.toString().toLowerCase().includes("error")?(console.error(i),this.showAlert(i.toString(),"error")):(console.log(i),this.showAlert(i.toString(),"info"))}}catch{}this.translations=iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.dictionary;const a={en:enLocal,de:deLocal,ru:ruLocal,pt:ptLocal,nl:nlLocal,fr:frLocal,it:itLocal,es:esLocal,pl:plLocal,uk:ukLocal,"zh-cn":zhCNLocal};Object.keys(a).forEach(i=>Object.assign(this.translations[i],a[i])),iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.setTranslations(this.translations),iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.setLanguage((window.navigator.language||window.navigator.userLanguage||"en").substring(0,2).toLowerCase()),this.refUser=React.createRef(),this.refUserDiv=React.createRef(),this.adminGuiConfig={admin:{menu:{},settings:{},adapters:{},login:{}}};const n=window.vendorPrefix;if(this.toggleThemePossible=!n||n==="@@vendorPrefix@@"||n==="MV",query.login){const i=App.createTheme();this.state={login:!0,theme:i,themeName:App.getThemeName(i),themeType:App.getThemeType(i)}}else{const i=(window._localStorage||window.localStorage).getItem("App.drawerState");let o;i?o=parseInt(i,10):o=this.props.width==="xs"?STATES.closed:STATES.opened;const r=App.createTheme();Object.defineProperty(window,"configNotSaved",{get:()=>this.state.configNotSaved,set:l=>{const h=!l;h!==this._tempAllStored&&(this._tempAllStored=h,this.forceUpdate())},configurable:!0}),this.state={connected:!1,progress:0,ready:!1,lang:"en",hostname:window.location.hostname,expertMode:!1,chatDockWidth:0,hosts:[],currentHost:"",currentHostName:"",ownHost:"",currentTab:iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.Router.getLocation(),systemConfig:null,user:null,repository:{},installed:{},waitForRestart:!1,tabs:null,config:{},stateChanged:!1,theme:r,themeName:App.getThemeName(r),themeType:App.getThemeType(r),alert:!1,alertType:"info",alertMessage:"",drawerState:o,editMenuList:!1,tab:null,dataNotStoredDialog:!1,dataNotStoredTab:null,baseSettingsOpened:!1,unsavedDataInDialog:!1,systemSettingsOpened:!1,cmd:null,cmdDialog:!1,commandHost:null,commandError:!1,commandRunning:!1,wizard:!0,performed:!1,discoveryAlive:!1,readTimeoutMs:SlowConnectionWarningDialogClass.getReadTimeoutMs(),showSlowConnectionWarning:!1,versionAdmin:"",forceUpdateAdapters:0,noTranslation:(window._localStorage||window.localStorage).getItem("App.noTranslation")!=="false",cloudNotConnected:!1,cloudReconnect:0,showRedirect:"",redirectCountDown:0,triggerAdapterUpdate:0,updating:!1,notificationsDialog:!1,notifications:{},noNotifications:{warning:0,other:0},configNotSaved:!1,login:!1,showHostWarning:null,adapters:{},askForTokenRefresh:null,userMenuAnchor:null},this.logsWorker=null,this.instancesWorker=null,this.hostsWorker=null}}static getDerivedStateFromError(e){return{hasGlobalError:e}}componentDidCatch(e){this.setState({hasGlobalError:e})}static checkSsoResponse(){const e=new URLSearchParams(window.location.search);if(e.has("id_token")&&(window.localStorage.setItem("oidc_id_token",e.get("id_token")),window.location.search=""),e.has("ssoLoginResponse")){const a=JSON.parse(e.get("ssoLoginResponse"));AdminConnection.saveTokensStatic(a,!0),window.location.search=""}}setUnsavedData(e){e!==this.state.unsavedDataInDialog&&this.setState({unsavedDataInDialog:e})}mustInvertBackground(e){if(!e)return!1;const a=iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.Utils.invertColor(e,!0);return a==="#FFFFFF"&&this.state.themeType==="dark"?!0:a==="#000000"&&this.state.themeType==="light"}localStorageGetItem=e=>this.guiSettings.native.localStorage[e];localStorageSetItem=(e,a)=>{if(a===null)a="null";else if(a===void 0){this.localStorageRemoveItem(e);return}this.guiSettings.native.localStorage[e]=a.toString(),this.localStorageSave()};localStorageRemoveItem=e=>{Object.prototype.hasOwnProperty.call(this.guiSettings.native.localStorage,e)&&(delete this.guiSettings.native.localStorage[e],this.localStorageSave())};sessionStorageGetItem=e=>this.guiSettings.native.sessionStorage[e];sessionStorageSetItem=(e,a)=>{if(a===null)a="null";else if(a===void 0){this.sessionStorageRemoveItem(e);return}this.guiSettings.native.sessionStorage[e]=a.toString(),this.localStorageSave()};sessionStorageRemoveItem=e=>{Object.prototype.hasOwnProperty.call(this.guiSettings.native.sessionStorage,e)&&(delete this.guiSettings.native.sessionStorage[e],this.localStorageSave())};localStorageSave(){this.localStorageTimer&&clearTimeout(this.localStorageTimer),this.localStorageTimer=setTimeout(async()=>{this.localStorageTimer=null,await this.socket.setObject(`system.adapter.${this.adminInstance}.guiSettings`,this.guiSettings)},200)}toggleTranslation=()=>{(window._localStorage||window.localStorage).setItem("App.noTranslation",this.state.noTranslation?"false":"true"),this.setState({noTranslation:!this.state.noTranslation})};async getGUISettings(){let e;if(!this.adminInstance)return;try{e=await this.socket.getObject(`system.adapter.${this.adminInstance}.guiSettings`)}catch(n){console.warn(`Could not get "system.adapter.${this.adminInstance}.guiSettings": ${n.message}`)}if(!e){e=JSON.parse(JSON.stringify(DEFAULT_GUI_SETTINGS_OBJECT));try{await this.socket.setObject(`system.adapter.${this.adminInstance}.guiSettings`,e)}catch(n){console.warn(`Could not update "system.adapter.${this.adminInstance}.guiSettings": ${n}`)}}let a;try{a=await this.socket.getState(`system.adapter.${this.adminInstance}.guiSettings`)}catch{a={val:!1}}if(a!=null&&a.val){this.guiSettings=e,this.guiSettings.native||={localStorage:{},sessionStorage:{}},this.guiSettings.native.localStorage||(this.guiSettings.native={localStorage:this.guiSettings.native,sessionStorage:{}}),window._localStorage={getItem:this.localStorageGetItem,setItem:this.localStorageSetItem,removeItem:this.localStorageRemoveItem},window._sessionStorage={getItem:this.sessionStorageGetItem,setItem:this.sessionStorageSetItem,removeItem:this.sessionStorageRemoveItem};const n=(window._localStorage||window.localStorage).getItem("App.drawerState");let i;n?i=parseInt(n,10):i=this.props.width==="xs"?STATES.closed:STATES.opened;const o=(window._localStorage||window.localStorage).getItem("App.noTranslation")!=="false";this.setState({guiSettings:!0,drawerState:i,noTranslation:o},()=>{iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.Utils.getThemeName()!==this.state.theme.name&&this.toggleTheme(iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.Utils.getThemeName())})}else this.state.guiSettings&&(window._localStorage=null,window._sessionStorage=null,this.setState({guiSettings:!1}))}enableGuiSettings(e,a){e&&!this.guiSettings?this.socket.getObject(`system.adapter.${this.adminInstance}.guiSettings`).then(async n=>{this.guiSettings=n||JSON.parse(JSON.stringify(DEFAULT_GUI_SETTINGS_OBJECT)),a||!this.guiSettings.native||!Object.keys(this.guiSettings.native).length?(this.guiSettings.native={localStorage:{},sessionStorage:{}},Object.keys(window.localStorage).forEach(i=>{i!=="getItem"&&i!=="setItem"&&i!=="removeItem"&&i!=="clear"&&i!=="key"&&i!=="length"&&(this.guiSettings.native.localStorage[i]=window.localStorage.getItem(i))}),Object.keys(window.sessionStorage).forEach(i=>{i!=="getItem"&&i!=="setItem"&&i!=="removeItem"&&i!=="clear"&&i!=="key"&&i!=="length"&&(this.guiSettings.native.sessionStorage[i]=window.sessionStorage.getItem(i))}),await this.socket.setObject(`system.adapter.${this.adminInstance}.guiSettings`,this.guiSettings),await this.socket.setState(`system.adapter.${this.adminInstance}.guiSettings`,{val:!0,ack:!0})):(await this.socket.setState(`system.adapter.${this.adminInstance}.guiSettings`,{val:!0,ack:!0}),window.location.reload()),await this.getGUISettings()}):!e&&this.guiSettings&&this.socket.getObject(`system.adapter.${this.adminInstance}.guiSettings`).then(async n=>{if(!n)try{await this.socket.setObject(`system.adapter.${this.adminInstance}.guiSettings`,DEFAULT_GUI_SETTINGS_OBJECT)}catch(i){console.error(`Cannot create system.adapter.${this.adminInstance}.guiSettings": ${i}`)}window._localStorage=null,window._sessionStorage=null,Object.keys(window.localStorage).forEach(i=>window.localStorage.removeItem(i)),Object.keys(window.sessionStorage).forEach(i=>window.sessionStorage.removeItem(i)),Object.keys(this.guiSettings.native.localStorage).forEach(i=>window.localStorage.setItem(i,this.guiSettings.native.localStorage[i])),Object.keys(this.guiSettings.native.sessionStorage).forEach(i=>window.sessionStorage.setItem(i,this.guiSettings.native.sessionStorage[i])),this.guiSettings=null;try{await this.socket.setState(`system.adapter.${this.adminInstance}.guiSettings`,{val:!1,ack:!0})}catch(i){window.alert(`Cannot disable settings: ${i}`)}this.setState({guiSettings:!1})})}componentDidMount(){App.checkSsoResponse(),this.state.login||(window.addEventListener("hashchange",this.onHashChanged,!1),this.state.currentTab.tab?this.setTitle(this.state.currentTab.tab.replace("tab-","")):this.handleNavigation("tab-intro"),this.socket=new AdminConnection({protocol:window.location.protocol,host:window.location.hostname,name:"eos-admin",admin5only:!0,port:App.getPort(),autoSubscribes:["system.adapter.*"],autoSubscribeLog:!0,tokenTimeoutHandler:this.onSessionExpiration,onProgress:e=>{e===PROGRESS.CONNECTING?this.setState({connected:!1}):e===PROGRESS.READY?this.socket.getVersion().then(async a=>{var i,o;console.log(`Stored version: ${this.state.versionAdmin}, new version: ${a.version}`),this.state.versionAdmin&&this.state.versionAdmin!==a.version&&(window.alert("New adapter version detected. Reloading..."),setTimeout(()=>window.location.reload(),500)),this.adminInstance||(this.adminInstance=await this.socket.getCurrentInstance()),await this.getGUISettings();const n={connected:!0,progress:100,versionAdmin:a.version,disableMcp:!1};if(this.state.cmd&&/\b(?:admin|eos-admin)(?:@[-.\w]+)?(?:\s+--debug)?$/.test(this.state.cmd))n.commandRunning=!1,n.forceUpdateAdapters=this.state.forceUpdateAdapters+1,this.closeCmdDialog(()=>{this.setState(n),window.location.reload()});else{try{const r=await this.socket.getObject(`system.adapter.${this.adminInstance}`);n.disableMcp=!!((i=r==null?void 0:r.native)!=null&&i.disableMcp),(o=r==null?void 0:r.native)!=null&&o.language?r.native.language!==iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.getLanguage()&&(console.log(`Language changed to ${r.native.language}`),iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.setLanguage(r.native.language),this.languageSet?window.location.reload():this.languageSet=!0):this.socket.systemLang!==iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.getLanguage()&&(console.log(`Language changed to ${this.socket.systemLang}`),iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.setLanguage(this.socket.systemLang),this.languageSet?window.location.reload():this.languageSet=!0)}catch(r){console.error(`Cannot read admin settings: ${r}`)}this.setState(n)}}).catch(a=>{console.error(`Cannot read version: ${a}`),a==="ioBroker is not connected"&&(setInterval(()=>{this.state.cloudReconnect>0?this.setState({cloudReconnect:this.state.cloudReconnect-1}):window.location.reload()},1e3),this.setState({cloudNotConnected:!0,cloudReconnect:10}))}):this.setState({connected:!0,progress:Math.round(PROGRESS.READY/e*100)})},onReady:async()=>{var e,a,n,i;this.adminGuiConfig={admin:{menu:{},settings:{},adapters:{},login:{}},...(e=this.socket.systemConfig.native)==null?void 0:e.vendor},this.adminGuiConfig.admin.menu||={},this.adminGuiConfig.admin.settings||={},this.adminGuiConfig.admin.adapters||={},this.adminGuiConfig.admin.login||={};try{this.adminInstance||(this.adminInstance=await this.socket.getCurrentInstance()),this.adminInstance||console.error("Cannot read admin instance!");const o=await this.socket.getObject(`system.adapter.${this.adminInstance}`);(a=o==null?void 0:o.native)!=null&&a.language?iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.setLanguage(o.native.language):iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.setLanguage(this.socket.systemLang),this.languageSet=!0;const r=await this.socket.getIsEasyModeStrict();if(await this.getGUISettings(),r){const d=await this.socket.getEasyMode();this.setState({lang:this.socket.systemLang,ready:!0,strictEasyMode:!0,easyModeConfigs:d.configs});return}this.logsWorker||=new LogsWorker(this.socket,1e3),this.instancesWorker||=new InstancesWorker(this.socket),this.hostsWorker||=new HostsWorker(this.socket),this.adaptersWorker||=new AdaptersWorker(this.socket),this.objectsWorker||=new ObjectsWorker(this.socket);const l={lang:this.socket.systemLang,ready:!0};try{l.systemConfig=await this.socket.getCompactSystemConfig(),l.wizard=!l.systemConfig.common.licenseConfirmed,await this.findCurrentHost(l),await this.readRepoAndInstalledInfo(l.currentHost,l.hosts)}catch(d){console.log(`Error reading repo in onReady: ${d.stack}`)}this.adaptersWorker.registerRepositoryHandler(this.repoChangeHandler),this.adaptersWorker.registerHandler(this.adaptersChangeHandler),this.hostsWorker.registerHandler(this.updateHosts),this.hostsWorker.registerNotificationHandler(this.handleNewNotifications);const h=(window._sessionStorage||window.sessionStorage).getItem("App.expertMode");if(l.expertMode=h?h==="true":!!l.systemConfig.common.expertMode,this.socket.isSecure||(n=this.socket.systemConfig.native)!=null&&n.vendor)try{const d=await this.socket.getCurrentUser(),p=await this.socket.getObject(`system.user.${d}`);(i=p.native)!=null&&i.vendor&&Object.assign(this.adminGuiConfig,p.native.vendor),this.socket.isSecure&&this.setState({user:{id:p._id,name:iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.Utils.getObjectNameFromObj(p,this.socket.systemLang),color:p.common.color,icon:p.common.icon,invertBackground:this.mustInvertBackground(p.common.color)}})}catch(d){console.error(`Could not determine user to show: ${d.toString()}, ${d.stack}`),this.showAlert(d.toString(),"error")}this.setState(l,()=>this.setCurrentTabTitle()),this.socket.subscribeState("system.adapter.discovery.0.alive",this.onDiscoveryAlive),setTimeout(()=>this.logsWorkerChanged(this.state.currentHost),1e3),setTimeout(()=>this.findNewsInstance().then(d=>{this.newsInstance=d,this.socket.subscribeState(`admin.${d}.info.newsFeed`,this.onNews)}),5e3),setTimeout(async()=>{const d=await this.hostsWorker.getNotifications(l.currentHost);await this.handleNewNotifications(d)},3e3)}catch(o){console.error(`Error in onReady: ${o.stack}`),this.showAlert(`Error in onReady: ${o.stack}`,"error")}},onError:e=>{console.error(e);let a;e instanceof Error?a=e.message||e.toString():a=e.toString(),a==="ioBroker is not connected"?this.state.cloudNotConnected||(this.showAlert(iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.t(a),"error"),setInterval(()=>{this.state.cloudReconnect>0?this.setState({cloudReconnect:this.state.cloudReconnect-1}):window.location.reload()},1e3),this.setState({cloudNotConnected:!0,cloudReconnect:10})):this.showAlert(a,"error")}}))}componentWillUnmount(){var e,a,n,i;window.removeEventListener("hashchange",this.onHashChanged,!1),(e=this.socket)==null||e.unsubscribeState("system.adapter.discovery.0.alive",this.onDiscoveryAlive),(a=this.adaptersWorker)==null||a.unregisterRepositoryHandler(this.repoChangeHandler),(n=this.adaptersWorker)==null||n.unregisterHandler(this.adaptersChangeHandler),(i=this.hostsWorker)==null||i.unregisterHandler(this.updateHosts),this.expireInSecInterval&&(clearInterval(this.expireInSecInterval),this.expireInSecInterval=null),window._localStorage&&(window._localStorage=null,window._sessionStorage=null)}updateHosts=e=>{const a=JSON.parse(JSON.stringify(this.state.hosts));e.forEach(n=>{const i=a.find(o=>o._id===n.id);if(i){const o=a.indexOf(i);n.obj?a[o]=n.obj:a.splice(o,1)}else a.push(n.obj)}),this.setState({hosts:a})};repoChangeHandler=()=>{this.readRepoAndInstalledInfo(this.state.currentHost,null,!0).then(()=>console.log("Repo updated!"))};adaptersChangeHandler=e=>{const a=JSON.parse(JSON.stringify(this.state.installed));let n=!1;e.forEach(i=>{const r=i.id.split(".")[2];i.type==="deleted"||!i.obj?a[r]&&(n=!0,delete a[r]):a[r]?Object.keys(a[r]).forEach(l=>{a[r][l]!==i.obj.common[l]&&(a[r][l]=i.obj.common[l],n=!0)}):(a[r]={version:i.obj.common.version},n=!0)}),n&&this.setState({installed:a})};async findCurrentHost(e){var n,i;if(e.hosts=await this.socket.getCompactHosts(),!this.state.currentHost){const o=(window._localStorage||window.localStorage).getItem("App.currentHost"),r=e.hosts.find(l=>l._id===o);o&&r?(e.currentHost=r._id,e.currentHostName=((n=r.common)==null?void 0:n.name)||r._id.replace("system.host.","")):(e.currentHost=e.hosts[0]._id,e.currentHostName=((i=e.hosts[0].common)==null?void 0:i.name)||e.hosts[0]._id.replace("system.host.",""))}e.ownHost=e.currentHost;let a;try{a=await this.socket.getState(`${e.currentHost}.alive`)}catch(o){a=null,console.warn(`Cannot get state ${e.currentHost}.alive: ${o}`)}if(!(a!=null&&a.val))for(let o=0;o<e.hosts.length;o++)a=await this.socket.getState(`${e.hosts[o]._id}.alive`),a!=null&&a.val&&(e.currentHost=e.hosts[o]._id,e.currentHostName=e.hosts[o].common.name)}renderTokenTimeoutDialog(){return this.state.askForTokenRefresh?jsxRuntimeExports.jsxs(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.Dialog,{open:!0,onClose:()=>App.logout(),children:[jsxRuntimeExports.jsxs(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.DialogContent,{children:[jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.DialogContentText,{children:iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.t("ra_Session will expire in %s seconds. Continue?",Math.round((this.state.askForTokenRefresh.expireAt-Date.now())/1e3))}),jsxRuntimeExports.jsx("div",{children:jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.FormControlLabel,{label:iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.t("ra_Do not ask for next 2 hours in this session"),control:jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.Checkbox,{checked:this.state.askForTokenRefresh.doNotAsk,onChange:()=>{const e={...this.state.askForTokenRefresh};this.state.askForTokenRefresh.doNotAsk=!this.state.askForTokenRefresh.doNotAsk,this.setState({askForTokenRefresh:e})}})})})]}),jsxRuntimeExports.jsxs(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.DialogActions,{children:[jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.Button,{onClick:()=>{const e=this.state.askForTokenRefresh.resolve;this.state.askForTokenRefresh.doNotAsk&&(this.doNotAskSessionExpiration=Date.now()+36e5*2),this.expireInSecInterval&&(clearInterval(this.expireInSecInterval),this.expireInSecInterval=null),this.setState({askForTokenRefresh:null},()=>e(!0))},variant:"contained",startIcon:jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_icons_mf_2_material__loadShare__.Update,{}),children:iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.t("ra_Continue")}),jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.Button,{onClick:()=>App.logout(),variant:"outlined",color:"grey",startIcon:jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_icons_mf_2_material__loadShare__.Logout,{}),children:iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.t("ra_Logout")})]})]}):null}onSessionExpiration=e=>new Promise(a=>{const n=Math.max(0,e-Date.now()),i=()=>{AdminConnection.deleteTokensStatic(),App.logout(),a(!1)};this.expireInSecInterval&&(clearTimeout(this.expireInSecInterval),this.expireInSecInterval=null),n<=0?i():this.expireInSecInterval=setTimeout(i,n)});onDiscoveryAlive=(e,a)=>{!!(a!=null&&a.val)!==this.state.discoveryAlive&&this.setState({discoveryAlive:!!(a!=null&&a.val)})};getDiscoveryModal=()=>jsxRuntimeExports.jsx(DiscoveryDialog,{themeType:this.state.themeType,themeName:this.state.themeName,theme:this.state.theme,socket:this.socket,systemConfig:this.state.systemConfig.common,dateFormat:this.state.systemConfig.common.dateFormat,currentHost:this.state.currentHost,defaultLogLevel:this.state.systemConfig.common.defaultLogLevel,repository:this.state.repository,hosts:this.state.hosts,onClose:()=>iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.Router.doNavigate(null)});async findNewsInstance(){for(let a=0;a<200;a++)try{const n=await this.socket.getState(`system.adapter.eos-admin.${a}.alive`);if(n!=null&&n.val)return a}catch(n){console.error(`Cannot find news instance: ${n.stack}`),this.showAlert(`Cannot find news instance: ${n.stack}`,"error")}return 0}renderNotificationsDialog(){var e,a;return this.state.notificationsDialog?jsxRuntimeExports.jsx(NotificationsDialog,{notifications:((e=this.state.notifications)==null?void 0:e.notifications)||{},instances:((a=this.state.notifications)==null?void 0:a.instances)||{},onClose:()=>this.setState({notificationsDialog:!1}),ackCallback:(n,i)=>this.socket.clearNotifications(n,i),dateFormat:this.state.systemConfig.common.dateFormat,isFloatComma:this.state.systemConfig.common.isFloatComma,themeType:this.state.themeType,themeName:this.state.themeName,theme:this.state.theme,socket:this.socket}):null}renderHostWarningDialog(){return this.state.showHostWarning?jsxRuntimeExports.jsx(HostWarningDialog,{instances:this.state.showHostWarning.instances,messages:this.state.showHostWarning.result.system.categories,dateFormat:this.state.systemConfig.common.dateFormat,themeType:this.state.themeType,ackCallback:e=>this.socket.clearNotifications(this.state.showHostWarning.host,e),onClose:()=>this.setState({showHostWarning:null})}):null}handleNewNotifications=async e=>{const a={warning:0,other:0};if(!e){this.setState({noNotifications:a,notifications:{}});return}for(const i of Object.values(e))if(i!=null&&i.result){for(const[o,r]of Object.entries(i.result))if(o!=="system")for(const l of Object.values(r.categories))for(const h of Object.values(l.instances)){const d=l.severity==="alert";a[d?"warning":"other"]+=h.messages.length}}const n=await this.instancesWorker.getObjects();this.setState({noNotifications:a,notifications:{notifications:e,instances:n}})};showAdaptersWarning=async(e,a)=>{if(!e||!e[a]||!e[a].result)return;const n=e[a].result;n!=null&&n.system&&Object.keys(n.system.categories).length&&await this.instancesWorker.getObjects().then(i=>this.setState({showHostWarning:{host:a,instances:i,result:n}}))};onNews=async(e,a)=>{try{if(!this.state.systemConfig.common.licenseConfirmed)return;const n=await this.socket.getState(`admin.${this.newsInstance}.info.newsLastId`);if(a!=null&&a.val){let i=null;try{i=JSON.parse(a.val)}catch{console.error(`Cannot parse news: ${a.val}`)}if(i!=null&&i.length&&i[0].id!==(n==null?void 0:n.val)){const o=await this.socket.getUuid(),r=await this.socket.getHostInfo(this.state.currentHost).catch(()=>null),l=await this.socket.getCompactInstances().catch(()=>null),h=(await this.socket.getDiagData(this.state.currentHost,"normal")).objectsType,d=await this.objectsWorker.getObjects(!0),p=Object.keys(d||{}).length,u=checkMessages(i,n==null?void 0:n.val,{lang:iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.getLanguage(),adapters:this.state.adapters,instances:l||{},nodeVersion:r&&r["Node.js"]||"?",npmVersion:r&&r.NPM||"?",os:r&&r.os||"?",activeRepo:this.state.systemConfig.common.activeRepo,uuid:o,objectsDbType:h,noObjects:p});u!=null&&u.length&&this.setState({showNews:{checkNews:u,lastNewsId:n==null?void 0:n.val}})}}}catch(n){console.error(`Could not process news: ${n.stack}`),this.showAlert(`Could not process news: ${n.stack}`,"error")}};renderNewsDialog(){return this.state.showNews?jsxRuntimeExports.jsx(NewsAdminDialog,{newsArr:this.state.showNews.checkNews,current:this.state.showNews.lastNewsId,onSetLastNewsId:async e=>{e&&await this.socket.setState(`admin.${this.newsInstance}.info.newsLastId`,{val:e,ack:!0}),this.setState({showNews:null})}}):null}renderSlowConnectionWarning(){return this.state.showSlowConnectionWarning?jsxRuntimeExports.jsx(SlowConnectionWarningDialogClass,{readTimeoutMs:this.state.readTimeoutMs,t:iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.t,onClose:e=>{e?this.setState({showSlowConnectionWarning:!1,readTimeoutMs:e},()=>this.readRepoAndInstalledInfo(this.state.currentHost)):this.setState({showSlowConnectionWarning:!1})}}):null}async readRepoAndInstalledInfo(e,a,n){a||=this.state.hosts;const i=await this.socket.getCompactRepository(e,n,this.state.readTimeoutMs).catch(l=>(window.alert(`Cannot getRepositoryCompact: ${l}`),l.toString().includes("timeout")&&this.setState({showSlowConnectionWarning:!0}),{})),o=await this.socket.getCompactInstalled(e,n,this.state.readTimeoutMs).catch(l=>(window.alert(`Cannot getInstalled: ${l}`),l.toString().includes("timeout")&&this.setState({showSlowConnectionWarning:!0}),{})),r=await this.socket.getCompactAdapters(n).catch(l=>(window.alert(`Cannot read adapters: ${l}`),{}));o&&r&&Object.keys(r).forEach(l=>{o[l]&&r[l].iv&&(o[l].ignoreVersion=r[l].iv)}),this.setState({repository:i,installed:o,hosts:a,adapters:r})}logsWorkerChanged=e=>{var a;(a=this.logsWorker)==null||a.setCurrentHost(e)};onHashChanged=()=>{this.setState({currentTab:iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.Router.getLocation()},()=>this.setCurrentTabTitle())};static getPort(){let e=parseInt(window.location.port,10);if(Number.isNaN(e))switch(App.getProtocol()){case"https:":e=443;break;case"http:":e=80;break}return(!e||e===3e3)&&(e=8081),e}static getProtocol(){return window.location.protocol}static createTheme(e){return iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.Theme(iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.Utils.getThemeName(e))}static getThemeName(e){return e.name}static getThemeType(e){return e.palette.mode}toggleTheme=e=>{const a=this.state.themeName,n=e||iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.Utils.toggleTheme(a),i=App.createTheme(n);this.setState({theme:i,themeName:n,themeType:App.getThemeType(i)},()=>{var o,r,l,h;(r=(o=this.refConfigIframe)==null?void 0:o.contentWindow)==null||r.postMessage("updateTheme","*"),(h=(l=this.refConfigIframe)==null?void 0:l.contentWindow)==null||h.postMessage({type:"updateTheme",themeName:n},"*")})};setCurrentTabTitle(){this.setTitle(this.state.currentTab.tab.replace("tab-",""))}setTitle(e){document.title=`${e} - ${this.state.currentHostName||"ioBroker"}`}getCurrentTab(){var e;if(this.state&&this.state.currentTab&&this.state.currentTab.tab){if(this.state.currentTab.tab==="tab-adapters"){const n=this.props.width==="xs"||this.props.width==="sm",i=!n&&this.state.drawerState===STATES.opened,o=n||this.state.drawerState===STATES.closed;return jsxRuntimeExports.jsx(iobroker_admin__loadShare__react__loadShare__.Suspense,{fallback:jsxRuntimeExports.jsx(Connecting,{}),children:jsxRuntimeExports.jsx(Adapters,{theme:this.state.theme,triggerUpdate:this.state.triggerAdapterUpdate,forceUpdateAdapters:this.state.forceUpdateAdapters,adaptersWorker:this.adaptersWorker,instancesWorker:this.instancesWorker,themeType:this.state.themeType,systemConfig:this.state.systemConfig,socket:this.socket,adminHost:this.state.ownHost,hostsWorker:this.hostsWorker,currentHost:this.state.currentHost,ready:this.state.ready,t:iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.t,lang:iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.getLanguage(),expertMode:this.state.expertMode,executeCommand:(r,l,h,d)=>this.executeCommand(r,l,h,d),commandRunning:this.state.commandRunning,onSetCommandRunning:r=>this.setState({commandRunning:r}),menuOpened:i,menuClosed:o,adminGuiConfig:this.adminGuiConfig,toggleTranslation:this.toggleTranslation,noTranslation:this.state.noTranslation,adminInstance:this.adminInstance,currentAdminVersion:this.state.versionAdmin,onUpdating:r=>this.setState({updating:r})},"adapters")})}if(this.state.currentTab.tab==="tab-instances")return jsxRuntimeExports.jsx(iobroker_admin__loadShare__react__loadShare__.Suspense,{fallback:jsxRuntimeExports.jsx(Connecting,{}),children:jsxRuntimeExports.jsx(Instances,{menuPadding:this.state.drawerState===STATES.closed?0:this.state.drawerState===STATES.opened?this.state.editMenuList?DRAWER_EDIT_WIDTH:DRAWER_FULL_WIDTH:DRAWER_COMPACT_WIDTH,socket:this.socket,instancesWorker:this.instancesWorker,lang:iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.getLanguage(),hostname:this.state.hostname,adminInstance:this.adminInstance,repository:this.state.repository,hosts:this.state.hosts,themeName:this.state.themeName,themeType:this.state.themeType,theme:this.state.theme,expertMode:this.state.expertMode,currentHost:this.state.currentHost,currentHostName:this.state.currentHostName,t:iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.t,dateFormat:this.state.systemConfig.common.dateFormat,isFloatComma:this.state.systemConfig.common.isFloatComma,width:this.props.width,configStored:n=>this.allStored(n),executeCommand:(n,i,o,r)=>this.executeCommand(n,i,o,r),inBackgroundCommand:this.state.commandError||this.state.performed,onRegisterIframeRef:n=>this.refConfigIframe=n,onUnregisterIframeRef:n=>{this.refConfigIframe===n&&(this.refConfigIframe=null)},handleNavigation:this.handleNavigation},"instances")});if(this.state.currentTab.tab==="tab-intro")return jsxRuntimeExports.jsx(iobroker_admin__loadShare__react__loadShare__.Suspense,{fallback:jsxRuntimeExports.jsx(Connecting,{}),children:jsxRuntimeExports.jsx(Intro,{hostname:this.state.hostname,adminInstance:this.adminInstance,instancesWorker:this.instancesWorker,hostsWorker:this.hostsWorker,showAlert:(n,i)=>this.showAlert(n,i),socket:this.socket,t:iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.t,lang:iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.getLanguage(),theme:this.state.theme},"intro")});if(this.state.currentTab.tab==="tab-logs")return jsxRuntimeExports.jsx(iobroker_admin__loadShare__react__loadShare__.Suspense,{fallback:jsxRuntimeExports.jsx(Connecting,{}),children:jsxRuntimeExports.jsx(Logs,{t:iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.t,width:this.props.width,lang:this.state.lang,socket:this.socket,themeType:this.state.themeType,theme:this.state.theme,ready:this.state.ready,logsWorker:this.logsWorker,expertMode:this.state.expertMode,currentHost:this.state.currentHost,hostsWorker:this.hostsWorker,clearErrors:()=>this.clearLogErrors()},"logs")});if(this.state.currentTab.tab==="tab-files")return jsxRuntimeExports.jsx(iobroker_admin__loadShare__react__loadShare__.Suspense,{fallback:jsxRuntimeExports.jsx(Connecting,{}),children:jsxRuntimeExports.jsx(Files,{ready:this.state.ready,t:iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.t,expertMode:this.state.expertMode,lang:iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.getLanguage(),socket:this.socket,themeType:this.state.themeType,theme:this.state.theme},"files")});if(this.state.currentTab.tab==="tab-users")return jsxRuntimeExports.jsx(iobroker_admin__loadShare__react__loadShare__.Suspense,{fallback:jsxRuntimeExports.jsx(Connecting,{}),children:jsxRuntimeExports.jsx(Users,{ready:this.state.ready,t:iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.t,expertMode:this.state.expertMode,lang:iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.getLanguage(),socket:this.socket,themeType:this.state.themeType,theme:this.state.theme},"users")});if(this.state.currentTab.tab==="tab-enums")return jsxRuntimeExports.jsx(iobroker_admin__loadShare__react__loadShare__.Suspense,{fallback:jsxRuntimeExports.jsx(Connecting,{}),children:jsxRuntimeExports.jsx(Enums,{t:iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.t,lang:iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.getLanguage(),socket:this.socket,themeType:this.state.themeType,theme:this.state.theme},"enums")});if(this.state.currentTab.tab==="tab-objects")return jsxRuntimeExports.jsx(iobroker_admin__loadShare__react__loadShare__.Suspense,{fallback:jsxRuntimeExports.jsx(Connecting,{}),children:jsxRuntimeExports.jsx(Objects,{t:iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.t,theme:this.state.theme,themeName:this.state.themeName,themeType:this.state.themeType,expertMode:this.state.expertMode,objectsWorker:this.objectsWorker,lang:iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.getLanguage(),socket:this.socket,dateFormat:this.state.systemConfig.common.dateFormat,isFloatComma:this.state.systemConfig.common.isFloatComma})},"objects");if(this.state.currentTab.tab==="tab-hosts")return jsxRuntimeExports.jsx(iobroker_admin__loadShare__react__loadShare__.Suspense,{fallback:jsxRuntimeExports.jsx(Connecting,{}),children:jsxRuntimeExports.jsx(Hosts,{socket:this.socket,lang:iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.getLanguage(),hostsWorker:this.hostsWorker,toggleTranslation:this.toggleTranslation,noTranslation:this.state.noTranslation,themeType:this.state.themeType,theme:this.state.theme,expertMode:this.state.expertMode,t:iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.t,currentHost:this.state.currentHost,executeCommand:(n,i,o,r)=>this.executeCommand(n,i,o,r),systemConfig:this.state.systemConfig,showAdaptersWarning:this.showAdaptersWarning,adminInstance:this.adminInstance,onUpdating:n=>this.setState({updating:n})})});if(this.state.currentTab.tab==="tab-devicemanager")return jsxRuntimeExports.jsx(iobroker_admin__loadShare__react__loadShare__.Suspense,{fallback:jsxRuntimeExports.jsx(Connecting,{}),children:jsxRuntimeExports.jsx(DeviceManagerTab,{themeName:this.state.themeName,themeType:this.state.themeType,theme:this.state.theme,socket:this.socket,dateFormat:this.state.systemConfig.common.dateFormat,isFloatComma:this.state.systemConfig.common.isFloatComma},this.state.currentTab.tab)});const a=this.state.currentTab.tab.match(/^tab-([-\w]+?)(?:-(\d+))?$/);if(a){const n=(e=this.tabsInfo)==null?void 0:e.find(i=>i.name===a[0]||i.name===`tab-${a[1]}`);return jsxRuntimeExports.jsx(iobroker_admin__loadShare__react__loadShare__.Suspense,{fallback:jsxRuntimeExports.jsx(Connecting,{}),children:jsxRuntimeExports.jsx(CustomTab,{hostname:this.state.hostname,adminInstance:this.adminInstance,hosts:this.state.hosts,instancesWorker:this.instancesWorker,tab:this.state.currentTab.tab,themeName:this.state.themeName,theme:this.state.theme,expertMode:this.state.expertMode,socket:this.socket,dateFormat:this.state.systemConfig.common.dateFormat,isFloatComma:this.state.systemConfig.common.isFloatComma,onRegisterIframeRef:i=>this.refConfigIframe=i,onUnregisterIframeRef:i=>{this.refConfigIframe===i&&(this.refConfigIframe=null)},icon:n==null?void 0:n.icon,supportsLoadingMessage:n==null?void 0:n.supportsLoadingMessage},this.state.currentTab.tab)})}}return null}clearLogErrors(){this.logsWorker.resetErrors(),this.logsWorker.resetWarnings()}getCurrentDialog(){if(this.state&&this.state.currentTab&&this.state.currentTab.dialog){if(this.state.currentTab.dialog==="system")return this.getSystemSettingsDialog();if(this.state.currentTab.dialog==="discovery")return this.getDiscoveryModal()}return null}getSystemSettingsDialog(){return jsxRuntimeExports.jsx(SystemSettingsDialog$1,{adminGuiConfig:this.adminGuiConfig,width:this.props.width,currentHost:this.state.currentHost,themeName:this.state.themeName,themeType:this.state.themeType,theme:this.state.theme,onClose:async e=>{iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.Router.doNavigate(null);const a=await this.socket.getObject("system.config");e?this.setState({triggerAdapterUpdate:this.state.triggerAdapterUpdate+1,systemConfig:a}):this.setState({systemConfig:a})},lang:this.state.lang,socket:this.socket,currentTab:this.state.currentTab,expertModeFunc:e=>{(window._sessionStorage||window.sessionStorage).removeItem("App.expertMode");const a=JSON.parse(JSON.stringify(this.state.systemConfig));a.common.expertMode=e,this.setState({expertMode:e,systemConfig:a})},t:iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.t},"systemSettings")}handleAlertClose(e,a){a!=="clickaway"&&this.setState({alert:!1})}showAlert(e,a){a!=="error"&&a!=="warning"&&a!=="info"&&a!=="success"&&(a="info");let n;typeof e!="string"?e instanceof Error?n=e.message||e.toString():e==null?n="null":n=e.toString():n=e,this.setState({alert:!0,alertType:a,alertMessage:n})}handleDrawerState(e){(window._localStorage||window.localStorage).setItem("App.drawerState",e.toString()),this.setState({drawerState:e})}static logout(){AdminConnection.deleteTokensStatic(),window.location.port==="3000"?window.location.href=`${window.location.protocol}//${window.location.hostname}:8081/logout?dev`:window.location.href=`./logout?origin=${window.location.pathname}`}handleNavigation=(e,a,n)=>{var i;e&&(this._tempAllStored?(iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.Router.doNavigate(e,a,n),this.setState({currentTab:iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.Router.getLocation()})):this.setState({dataNotStoredDialog:!0,dataNotStoredTab:{tab:e,subTab:a,param:n}})),(this.props.width==="xs"||this.props.width==="sm")&&this.handleDrawerState(STATES.closed),e||=((i=this.state.currentTab)==null?void 0:i.tab)||"",this.setTitle(e.replace("tab-",""))};allStored(e){this._tempAllStored!==e&&(this._tempAllStored=e,this.forceUpdate())}closeDataNotStoredDialog(){this.setState({dataNotStoredDialog:!1})}confirmDataNotStored(){this._tempAllStored=!0,this.setState({dataNotStoredDialog:!1},()=>{var e,a,n;return this.handleNavigation((e=this.state.dataNotStoredTab)==null?void 0:e.tab,(a=this.state.dataNotStoredTab)==null?void 0:a.subTab,(n=this.state.dataNotStoredTab)==null?void 0:n.param)})}executeCommand(e,a,n,i){if(typeof a=="boolean"&&(n=a,a=null),this.state.performed||this.state.commandError){this.setState({cmd:null,cmdDialog:!1,commandError:!1,performed:!1,callback:null,commandHost:null,cmdFiles:null},()=>this.setState({cmd:e,cmdDialog:!0,callback:n,cmdFiles:i||null}));return}console.log(`Execute: ${e}`),this.setState({cmd:e,cmdDialog:!0,callback:n,commandHost:a||this.state.currentHost,cmdFiles:i||null})}closeCmdDialog(e){this.setState({cmd:null,cmdDialog:!1,commandError:!1,performed:!1,callback:null,commandHost:null,cmdFiles:null},()=>e&&e())}renderWizardDialog(){return this.state.wizard?jsxRuntimeExports.jsx(WizardDialog$1,{executeCommand:(e,a,n,i)=>this.executeCommand(e,a,n,i),host:this.state.currentHost,socket:this.socket,themeName:this.state.themeName,themeType:this.state.themeType,toggleTheme:this.toggleTheme,lang:iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.getLanguage(),onClose:e=>{this.setState({wizard:!1,showRedirect:e,redirectCountDown:10},()=>{this.state.showRedirect&&setInterval(()=>{this.state.redirectCountDown>0?this.setState({redirectCountDown:this.state.redirectCountDown-1}):window.location.href=this.state.showRedirect},1e3)})},onNavigate:(e,a,n)=>{iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.Router.doNavigate(e,a,n),window.location.reload()}}):null}showRedirectDialog(){var e;return this.state.showRedirect?jsxRuntimeExports.jsxs(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.Dialog,{open:!0,onClose:()=>{},children:[jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.DialogTitle,{children:iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.t("Waiting for admin restart...")}),jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.DialogContent,{children:jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.DialogContentText,{children:iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.t("Redirect in %s second(s)",this.state.redirectCountDown)})}),jsxRuntimeExports.jsxs(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.DialogActions,{children:[window.sidebar||window.opera&&window.print||window.document.all&&((e=window.external)!=null&&e.AddFavorite)?jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.Button,{onClick:()=>{if(window.sidebar)window.sidebar.addPanel("ioBroker.admin",this.state.showRedirect,"");else if(window.opera&&window.print){const a=document.createElement("a");a.setAttribute("href",this.state.showRedirect),a.setAttribute("title","ioBroker.admin"),a.setAttribute("rel","sidebar"),a.click()}else document.all&&window.external.AddFavorite(this.state.showRedirect,"ioBroker.admin")},children:iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.t("Bookmark admin")}):null,this.state.redirectCountDown?jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.Button,{variant:"contained",onClick:()=>window.location.href=this.state.showRedirect,children:iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.t("Go to admin now")}):null]})]}):null}renderCommandDialog(){return this.state.cmd?jsxRuntimeExports.jsx(CommandDialog,{onSetCommandRunning:e=>this.setState({commandRunning:e}),onClose:()=>this.closeCmdDialog(()=>this.setState({commandRunning:!1})),visible:this.state.cmdDialog,callback:this.state.callback,onInBackground:()=>this.setState({cmdDialog:!1}),cmd:this.state.cmd,files:this.state.cmdFiles||void 0,errorFunc:()=>this.setState({commandError:!0}),performed:()=>this.setState({performed:!0}),inBackground:this.state.commandError||this.state.performed,commandError:this.state.commandError,socket:this.socket,host:this.state.commandHost||this.state.currentHost,ready:this.state.ready,t:iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.t}):null}renderLoggedUser(){var e;return this.state.user&&this.props.width!=="xs"&&this.props.width!=="sm"?jsxRuntimeExports.jsxs("div",{children:[this.state.systemConfig.common.siteName?jsxRuntimeExports.jsx("div",{style:styles.siteName,children:this.state.systemConfig.common.siteName}):null,jsxRuntimeExports.jsxs(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.Box,{component:"div",title:this.state.user.id,sx:{...styles.userBadge,...this.state.user.invertBackground?styles.userBackground:void 0,...this.socket.isSecure?{cursor:"pointer"}:{}},ref:this.refUser,...this.socket.isSecure?{onClick:a=>this.setState({userMenuAnchor:a.currentTarget})}:{},children:[this.state.user.icon?jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.Icon,{src:this.state.user.icon,style:styles.userIcon}):jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_icons_mf_2_material__loadShare__.Person,{style:styles.userIcon}),jsxRuntimeExports.jsx("div",{ref:this.refUserDiv,style:{...styles.userText,color:((e=this.state.user)==null?void 0:e.color)||void 0},children:this.state.user.name})]}),this.socket.isSecure&&jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.Menu,{anchorEl:this.state.userMenuAnchor,open:!!this.state.userMenuAnchor,onClose:()=>this.setState({userMenuAnchor:null}),anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},children:jsxRuntimeExports.jsxs(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.MenuItem,{onClick:()=>{this.setState({userMenuAnchor:null}),App.logout()},children:[jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.ListItemIcon,{children:jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_icons_mf_2_material__loadShare__.Logout,{fontSize:"small"})}),jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.ListItemText,{children:iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.t("ra_Logout")})]})})]}):this.props.width!=="xs"&&this.props.width!=="sm"&&this.state.systemConfig.common.siteName?jsxRuntimeExports.jsx("div",{style:styles.siteName,children:this.state.systemConfig.common.siteName}):null}renderAlertSnackbar(){return jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.Snackbar,{style:styles[`alert_${this.state.alertType}`],open:this.state.alert,autoHideDuration:6e3,onClose:()=>this.handleAlertClose(),message:this.state.alertMessage})}renderDialogConfirm(){return this.state.dataNotStoredDialog?jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.DialogConfirm,{title:iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.t("ra_Please confirm"),text:iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.t("ra_Some data are not stored. Discard?"),ok:iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.t("ra_Discard"),cancel:iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.t("ra_Cancel"),onClose:e=>e?this.confirmDataNotStored():this.closeDataNotStoredDialog()}):null}renderExpertDialog(){return this.state.expertModeDialog?jsxRuntimeExports.jsx(ExpertModeDialog,{onClose:e=>{var a,n;e==="openSettings"?iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.Router.doNavigate(null,"system"):e?((window._sessionStorage||window.sessionStorage).setItem("App.expertMode",this.state.expertMode?"false":"true"),(n=(a=this.refConfigIframe)==null?void 0:a.contentWindow)==null||n.postMessage("updateExpertMode","*"),this.setState({expertModeDialog:!1,expertMode:!this.state.expertMode})):this.state.expertModeDialog&&this.setState({expertModeDialog:!1})},expertMode:this.state.expertMode}):null}renderShowGuiSettings(){return this.state.showGuiSettings?jsxRuntimeExports.jsxs(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.Menu,{anchorEl:this.state.showGuiSettings,open:!0,onClose:()=>this.setState({showGuiSettings:null}),children:[jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.MenuItem,{onClick:()=>{this.setState({showGuiSettings:null}),this.enableGuiSettings(!0)},children:iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.t("Use settings of other browsers")}),jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.MenuItem,{onClick:()=>{this.setState({showGuiSettings:null}),this.enableGuiSettings(!0,!0)},children:iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.t("Use settings of this browser")}),jsxRuntimeExports.jsxs(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.MenuItem,{onClick:()=>this.setState({showGuiSettings:null}),children:[jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.ListItemIcon,{children:jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_icons_mf_2_material__loadShare__.Close,{fontSize:"small"})}),jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.ListItemText,{children:iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.t("Cancel")})]})]}):null}renderToolbar(e){const a=(window._sessionStorage||window.sessionStorage).getItem("App.expertMode"),n=!a||a==="true"==!!this.state.systemConfig.common.expertMode,i=iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.Utils.getStyle(this.state.theme,styles.performed),o=this.state.noNotifications.warning+this.state.noNotifications.other;return jsxRuntimeExports.jsxs(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.Toolbar,{children:[jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.IconButton,{size:"large",edge:"start",style:{...styles.menuButton,...!e&&this.state.drawerState!==STATES.closed?styles.hide:void 0},onClick:()=>this.handleDrawerState(STATES.opened),children:jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_icons_mf_2_material__loadShare__.Menu,{})}),jsxRuntimeExports.jsxs("div",{style:styles.wrapperButtons,children:[jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.Tooltip,{title:iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.t("Notifications"),slotProps:{popper:{sx:styles.tooltip}},children:jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.IconButton,{size:"large",disableRipple:!o,style:{opacity:o?1:.3},onClick:o?()=>this.setState({notificationsDialog:!0}):null,children:jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.Badge,{badgeContent:this.state.noNotifications.other+this.state.noNotifications.warning,color:this.state.noNotifications.warning>0?"error":"secondary",max:99,children:jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_icons_mf_2_material__loadShare__.Notifications,{})})})}),jsxRuntimeExports.jsx(IsVisible,{name:"admin.appBar.discovery",config:this.adminGuiConfig,children:this.state.discoveryAlive&&jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.Tooltip,{title:iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.t("Discovery devices"),slotProps:{popper:{sx:styles.tooltip}},children:jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.IconButton,{size:"large",onClick:()=>iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.Router.doNavigate(null,"discovery"),children:jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_icons_mf_2_material__loadShare__.Visibility,{})})})}),jsxRuntimeExports.jsx(IsVisible,{name:"admin.appBar.systemSettings",config:this.adminGuiConfig,children:jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.Tooltip,{title:iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.t("System settings"),slotProps:{popper:{sx:styles.tooltip}},children:jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.IconButton,{size:"large",onClick:()=>iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.Router.doNavigate(null,"system"),children:jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_icons_mf_2_material__loadShare__.Build,{})})})}),this.toggleThemePossible?jsxRuntimeExports.jsx(IsVisible,{name:"admin.appBar.toggleTheme",config:this.adminGuiConfig,children:jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.ToggleThemeMenu,{size:"large",toggleTheme:this.toggleTheme,themeName:this.state.themeName,t:iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.t})}):null,jsxRuntimeExports.jsx(IsVisible,{name:"admin.appBar.expertMode",config:this.adminGuiConfig,children:jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.Tooltip,{title:`${iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.t("Toggle expert mode")} ${n?"":` (${iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.t("only in this browser session")})`}`,slotProps:{popper:{sx:styles.tooltip}},children:jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.Badge,{color:"secondary",variant:"dot",sx:{"& .MuiBadge-badge":styles.expertBadge},invisible:n,children:jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.IconButton,{size:"large",onClick:()=>{var r,l,h,d;!!this.state.systemConfig.common.expertMode==!this.state.expertMode?((window._sessionStorage||window.sessionStorage).setItem("App.expertMode",this.state.expertMode?"false":"true"),this.setState({expertMode:!this.state.expertMode}),(l=(r=this.refConfigIframe)==null?void 0:r.contentWindow)==null||l.postMessage("updateExpertMode","*")):(window._sessionStorage||window.sessionStorage).getItem("App.doNotShowExpertDialog")==="true"?((window._sessionStorage||window.sessionStorage).setItem("App.expertMode",this.state.expertMode?"false":"true"),this.setState({expertMode:!this.state.expertMode}),(d=(h=this.refConfigIframe)==null?void 0:h.contentWindow)==null||d.postMessage("updateExpertMode","*")):this.setState({expertModeDialog:!0})},style:{color:this.state.expertMode?this.state.theme.palette.expert:void 0},color:"default",children:jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.IconExpert,{style:{...styles.expertIcon,...this.state.expertMode?styles.expertIconActive:void 0}})})})})}),this.state.expertMode?jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.Tooltip,{title:iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.t("Synchronize admin settings between all opened browser windows"),slotProps:{popper:{sx:styles.tooltip}},children:jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.IconButton,{size:"large",onClick:r=>this.state.guiSettings?this.enableGuiSettings(!1):this.setState({showGuiSettings:r.target}),style:{color:this.state.guiSettings?this.state.theme.palette.expert:void 0},children:this.state.guiSettings?jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_icons_mf_2_material__loadShare__.CloudSync,{}):jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_icons_mf_2_material__loadShare__.SyncDisabled,{})})}):null,jsxRuntimeExports.jsx(IsVisible,{name:"admin.appBar.hostSelector",config:this.adminGuiConfig,children:jsxRuntimeExports.jsx(HostSelectors,{tooltip:this.state.currentTab.tab!=="tab-instances"&&this.state.currentTab.tab!=="tab-adapters"&&this.state.currentTab.tab!=="tab-logs"?iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.t("You can change host on Instances, Adapters or Logs pages"):void 0,themeType:this.state.themeType,expertMode:this.state.expertMode,socket:this.socket,hostsWorker:this.hostsWorker,currentHost:this.state.currentHost,setCurrentHost:(r,l)=>{this.setState({currentHostName:r,currentHost:l},async()=>{this.logsWorkerChanged(l),(window._localStorage||window.localStorage).setItem("App.currentHost",l),await this.readRepoAndInstalledInfo(l,this.state.hosts);const h=await this.hostsWorker.getNotifications(l);await this.handleNewNotifications(h)})},disabled:this.state.currentTab.tab!=="tab-instances"&&this.state.currentTab.tab!=="tab-adapters"&&this.state.currentTab.tab!=="tab-logs"})}),jsxRuntimeExports.jsx("div",{style:styles.flexGrow}),this.state.cmd&&!this.state.cmdDialog&&jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.IconButton,{size:"large",onClick:()=>this.setState({cmdDialog:!0}),children:jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_icons_mf_2_material__loadShare__.PictureInPictureAlt,{style:this.state.commandError?styles.errorCmd:this.state.performed?i:styles.cmd})})]}),this.renderLoggedUser(),this.state.drawerState!==STATES.opened&&!this.state.expertMode&&window.innerWidth>450&&jsxRuntimeExports.jsxs(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.Grid2,{container:!0,style:{...styles.avatarNotVisible,...this.state.drawerState!==STATES.opened?styles.avatarVisible:void 0},spacing:1,alignItems:"center",children:[this.state.user?null:jsxRuntimeExports.jsxs(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.Box,{component:"div",style:styles.wrapperName,children:[jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.Typography,{children:"admin"}),!this.adminGuiConfig.icon&&this.state.versionAdmin&&jsxRuntimeExports.jsxs(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.Typography,{style:{...styles.styleVersion,color:this.state.themeType==="dark"?"#ffffff80":"#00000080"},children:["v",this.state.versionAdmin]})]}),jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.Grid2,{children:jsxRuntimeExports.jsx("a",{href:"/#easy",onClick:r=>r.preventDefault(),style:{color:"inherit",textDecoration:"none"},children:this.adminGuiConfig.icon?jsxRuntimeExports.jsx("div",{style:{height:50,width:102,lineHeight:"50px",background:"white",borderRadius:5,padding:5},children:jsxRuntimeExports.jsx("img",{src:this.adminGuiConfig.icon,alt:"logo",style:{maxWidth:"100%",maxHeight:"100%"}})}):jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.Avatar,{onClick:()=>this.handleNavigation("easy"),style:this.state.themeName==="colored"||this.state.themeName==="blue"?styles.logoWhite:void 0,alt:"ioBroker",src:"img/no-image.svg"})})})]})]})}renderSampleError(){const e=this.state.hasGlobalError.message,a=this.state.hasGlobalError.stack;return jsxRuntimeExports.jsxs("div",{style:{textAlign:"center",fontSize:22,marginTop:50,height:"calc(100% - 50px)",overflow:"auto"},children:[jsxRuntimeExports.jsx("h1",{style:{color:"#F00"},children:"Error in GUI!"}),"Please open the browser console (F12), copy error text from there and create the issue on"," ",jsxRuntimeExports.jsx("a",{href:"https://github.com/ioBroker/ioBroker.admin/issues",target:"_blank",rel:"noreferrer",children:"github"}),jsxRuntimeExports.jsx("br",{}),"Without this information it is not possible to analyse the error.",jsxRuntimeExports.jsx("br",{}),"It should looks like ",jsxRuntimeExports.jsx("br",{}),jsxRuntimeExports.jsx("img",{src:"img/browserError.png",alt:"error"}),jsxRuntimeExports.jsx("br",{}),"If in the second line you will see"," ",jsxRuntimeExports.jsx("code",{style:{color:"#888",fontFamily:"monospace",fontSize:16},children:"at :3000/static/js/main.chunk.js:36903"})," ","and not the normal file name,",jsxRuntimeExports.jsx("br",{}),'please try to reproduce an error with opened browser console. In this case the special "map" files will be loaded and the developers can see the real name of functions and files.',jsxRuntimeExports.jsx("div",{style:{color:"#F88",fontSize:14,marginTop:20},children:e}),jsxRuntimeExports.jsx("pre",{style:{color:"#F88",fontSize:12,fontFamily:"monospace",textAlign:"left",marginTop:20,padding:20},children:(a||"").toString().split(`
|
|
297
297
|
`).map((n,i)=>jsxRuntimeExports.jsxs("div",{children:[n,jsxRuntimeExports.jsx("br",{})]},i))})]})}renderEasyMode(){var e,a;return jsxRuntimeExports.jsx(StyledEngineProvider,{injectFirst:!0,children:jsxRuntimeExports.jsx(ThemeProvider,{theme:this.state.theme,children:jsxRuntimeExports.jsxs("div",{style:{height:"100%"},children:[!this.state.connected&&jsxRuntimeExports.jsx(Connecting,{}),jsxRuntimeExports.jsx(iobroker_admin__loadShare__react__loadShare__.Suspense,{fallback:jsxRuntimeExports.jsx(Connecting,{}),children:jsxRuntimeExports.jsx(EasyMode,{navigate:iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.Router.doNavigate,getLocation:iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.Router.getLocation,location:this.state.currentTab,toggleTheme:this.toggleTheme,themeName:this.state.themeName,themeType:this.state.themeType,theme:this.state.theme,width:this.props.width,adminInstance:this.adminInstance,configs:this.state.easyModeConfigs,socket:this.socket,configStored:n=>this.allStored(n),isFloatComma:(e=this.state.systemConfig)==null?void 0:e.common.isFloatComma,dateFormat:(a=this.state.systemConfig)==null?void 0:a.common.dateFormat,t:iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.t,lang:iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.getLanguage(),onRegisterIframeRef:n=>this.refConfigIframe=n,onUnregisterIframeRef:n=>{this.refConfigIframe===n&&(this.refConfigIframe=null)},handleNavigation:this.handleNavigation})})]})})})}render(){const e=this.props.width==="xs"||this.props.width==="sm";return this.state.cloudNotConnected?jsxRuntimeExports.jsx(StyledEngineProvider,{injectFirst:!0,children:jsxRuntimeExports.jsxs(ThemeProvider,{theme:this.state.theme,children:[jsxRuntimeExports.jsx("div",{style:{width:"100%",height:"100%",textAlign:"center",display:"flex",alignItems:"center",justifyContent:"center",backgroundColor:this.state.themeType==="dark"?"#1a1a1a":"#fafafa",color:this.state.themeType==="dark"?"#fafafa":"#1a1a1a"},children:jsxRuntimeExports.jsxs("div",{style:{width:300,height:100},children:[jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.CircularProgress,{}),jsxRuntimeExports.jsxs("div",{style:{fontSize:16},children:[iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.t("Waiting for connection of ioBroker...")," ",jsxRuntimeExports.jsx("span",{style:{fontSize:18},children:this.state.cloudReconnect})]})]})}),this.renderAlertSnackbar()]})}):this.state.hasGlobalError?this.renderSampleError():this.state.login?jsxRuntimeExports.jsx(StyledEngineProvider,{injectFirst:!0,children:jsxRuntimeExports.jsxs(ThemeProvider,{theme:this.state.theme,children:[jsxRuntimeExports.jsx(Login$b,{}),this.renderAlertSnackbar()]})}):!this.state.ready&&!this.state.updating?jsxRuntimeExports.jsx(StyledEngineProvider,{injectFirst:!0,children:jsxRuntimeExports.jsxs(ThemeProvider,{theme:this.state.theme,children:[jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.Loader,{themeType:this.state.themeType}),this.renderAlertSnackbar()]})}):this.state.strictEasyMode||this.state.currentTab.tab==="easy"?this.renderEasyMode():jsxRuntimeExports.jsx(StyledEngineProvider,{injectFirst:!0,children:jsxRuntimeExports.jsxs(ThemeProvider,{theme:this.state.theme,children:[jsxRuntimeExports.jsx("style",{children:`@keyframes myEffect2 {
|
|
298
298
|
0% {
|
|
299
299
|
opacity: 1;
|
package/adminWww/index.html
CHANGED
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
rel="stylesheet"
|
|
32
32
|
href="css/leaflet.css"
|
|
33
33
|
/>
|
|
34
|
-
<link rel="stylesheet" href="./css/eos-branding.css?v=
|
|
34
|
+
<link rel="stylesheet" href="./css/eos-branding.css?v=34" />
|
|
35
35
|
<link
|
|
36
36
|
rel="manifest"
|
|
37
37
|
href="manifest.json"
|
|
@@ -154,12 +154,13 @@
|
|
|
154
154
|
<script type="module" crossorigin src="./assets/index-CQZugZ1z.js"></script>
|
|
155
155
|
<link rel="modulepreload" crossorigin href="./assets/preload-helper-BDBacUwf.js">
|
|
156
156
|
<link rel="modulepreload" crossorigin href="./assets/iobroker_admin__mf_v__runtimeInit__mf_v__-g2X2zhAf.js">
|
|
157
|
-
<script defer src="./js/eos-branding.js?v=
|
|
158
|
-
<script defer src="./js/eos-security-ui.js?v=
|
|
159
|
-
<script defer src="./js/eos-
|
|
157
|
+
<script defer src="./js/eos-branding.js?v=34"></script>
|
|
158
|
+
<script defer src="./js/eos-security-ui.js?v=34"></script>
|
|
159
|
+
<script defer src="./js/eos-hard-logout.js?v=34"></script>
|
|
160
|
+
<script defer src="./js/eos-assistant.js?v=34"></script>
|
|
160
161
|
</head>
|
|
161
162
|
<body>
|
|
162
163
|
<noscript>You need to enable JavaScript to run this app.</noscript>
|
|
163
164
|
<div id="root"></div>
|
|
164
|
-
|
|
165
|
+
</body>
|
|
165
166
|
</html>
|