iobroker.eos-admin 7.9.69 → 7.9.70

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (381) hide show
  1. package/adminWww/assets/AdapterUpdateDialog-BMg84Hpf-v54.js +1 -0
  2. package/adminWww/assets/AdapterUpdateDialog-BMg84Hpf-v55.js +1 -0
  3. package/adminWww/assets/AdapterUpdateDialog-BMg84Hpf-v56.js +1 -0
  4. package/adminWww/assets/AdapterUpdateDialog-BMg84Hpf-v57.js +1 -0
  5. package/adminWww/assets/AdapterUpdateDialog-BMg84Hpf-v58.js +1 -2
  6. package/adminWww/assets/AdapterUpdateDialog-BMg84Hpf-v59.js +1 -2
  7. package/adminWww/assets/AdapterUpdateDialog-BMg84Hpf-v60.js +1 -2
  8. package/adminWww/assets/AdapterUpdateDialog-BMg84Hpf-v61.js +1 -2
  9. package/adminWww/assets/AdapterUpdateDialog-BMg84Hpf-v62.js +1 -0
  10. package/adminWww/assets/AdapterUpdateDialog-BMg84Hpf-v63.js +1 -0
  11. package/adminWww/assets/AdapterUpdateDialog-BMg84Hpf-v64.js +1 -0
  12. package/adminWww/assets/AdapterUpdateDialog-BMg84Hpf-v65.js +1 -0
  13. package/adminWww/assets/AdapterUpdateDialog-BMg84Hpf-v66.js +1 -0
  14. package/adminWww/assets/AdapterUpdateDialog-BMg84Hpf-v67.js +1 -2
  15. package/adminWww/assets/AdapterUpdateDialog-BMg84Hpf-v68.js +1 -0
  16. package/adminWww/assets/AdapterUpdateDialog-BMg84Hpf-v69.js +1 -0
  17. package/adminWww/assets/AdapterUpdateDialog-BMg84Hpf-v70.js +2 -0
  18. package/adminWww/assets/AdapterUpdateDialog-BMg84Hpf.js +2 -2
  19. package/adminWww/assets/Adapters-B5_jQ7DE-v54.js +1 -0
  20. package/adminWww/assets/Adapters-B5_jQ7DE-v55.js +1 -0
  21. package/adminWww/assets/Adapters-B5_jQ7DE-v56.js +1 -0
  22. package/adminWww/assets/Adapters-B5_jQ7DE-v57.js +1 -0
  23. package/adminWww/assets/Adapters-B5_jQ7DE-v58.js +1 -2
  24. package/adminWww/assets/Adapters-B5_jQ7DE-v59.js +1 -2
  25. package/adminWww/assets/Adapters-B5_jQ7DE-v60.js +1 -9
  26. package/adminWww/assets/Adapters-B5_jQ7DE-v61.js +1 -9
  27. package/adminWww/assets/Adapters-B5_jQ7DE-v62.js +1 -0
  28. package/adminWww/assets/Adapters-B5_jQ7DE-v63.js +1 -0
  29. package/adminWww/assets/Adapters-B5_jQ7DE-v64.js +1 -0
  30. package/adminWww/assets/Adapters-B5_jQ7DE-v65.js +1 -0
  31. package/adminWww/assets/Adapters-B5_jQ7DE-v66.js +1 -0
  32. package/adminWww/assets/Adapters-B5_jQ7DE-v67.js +1 -9
  33. package/adminWww/assets/Adapters-B5_jQ7DE-v68.js +1 -0
  34. package/adminWww/assets/Adapters-B5_jQ7DE-v69.js +1 -0
  35. package/adminWww/assets/Adapters-B5_jQ7DE-v70.js +9 -0
  36. package/adminWww/assets/Adapters-B5_jQ7DE.js +9 -2
  37. package/adminWww/assets/Config-hHK2UzGP-v54.js +1 -0
  38. package/adminWww/assets/Config-hHK2UzGP-v55.js +1 -0
  39. package/adminWww/assets/Config-hHK2UzGP-v56.js +1 -0
  40. package/adminWww/assets/Config-hHK2UzGP-v57.js +1 -0
  41. package/adminWww/assets/Config-hHK2UzGP-v58.js +1 -1
  42. package/adminWww/assets/Config-hHK2UzGP-v59.js +1 -1
  43. package/adminWww/assets/Config-hHK2UzGP-v60.js +1 -1
  44. package/adminWww/assets/Config-hHK2UzGP-v61.js +1 -1
  45. package/adminWww/assets/Config-hHK2UzGP-v62.js +1 -0
  46. package/adminWww/assets/Config-hHK2UzGP-v63.js +1 -0
  47. package/adminWww/assets/Config-hHK2UzGP-v64.js +1 -0
  48. package/adminWww/assets/Config-hHK2UzGP-v65.js +1 -0
  49. package/adminWww/assets/Config-hHK2UzGP-v66.js +1 -0
  50. package/adminWww/assets/Config-hHK2UzGP-v67.js +1 -1
  51. package/adminWww/assets/Config-hHK2UzGP-v68.js +1 -0
  52. package/adminWww/assets/Config-hHK2UzGP-v69.js +1 -0
  53. package/adminWww/assets/Config-hHK2UzGP-v70.js +1 -0
  54. package/adminWww/assets/Config-hHK2UzGP.js +1 -2
  55. package/adminWww/assets/CustomTab-B0wqoazH-v54.js +1 -0
  56. package/adminWww/assets/CustomTab-B0wqoazH-v55.js +1 -0
  57. package/adminWww/assets/CustomTab-B0wqoazH-v56.js +1 -0
  58. package/adminWww/assets/CustomTab-B0wqoazH-v57.js +1 -0
  59. package/adminWww/assets/CustomTab-B0wqoazH-v58.js +1 -1
  60. package/adminWww/assets/CustomTab-B0wqoazH-v59.js +1 -1
  61. package/adminWww/assets/CustomTab-B0wqoazH-v60.js +1 -1
  62. package/adminWww/assets/CustomTab-B0wqoazH-v61.js +1 -1
  63. package/adminWww/assets/CustomTab-B0wqoazH-v62.js +1 -0
  64. package/adminWww/assets/CustomTab-B0wqoazH-v63.js +1 -0
  65. package/adminWww/assets/CustomTab-B0wqoazH-v64.js +1 -0
  66. package/adminWww/assets/CustomTab-B0wqoazH-v65.js +1 -0
  67. package/adminWww/assets/CustomTab-B0wqoazH-v66.js +1 -0
  68. package/adminWww/assets/CustomTab-B0wqoazH-v67.js +1 -1
  69. package/adminWww/assets/CustomTab-B0wqoazH-v68.js +1 -0
  70. package/adminWww/assets/CustomTab-B0wqoazH-v69.js +1 -0
  71. package/adminWww/assets/CustomTab-B0wqoazH-v70.js +1 -0
  72. package/adminWww/assets/CustomTab-B0wqoazH.js +1 -2
  73. package/adminWww/assets/DeviceManager-BFmQeYQ1-v54.js +1 -0
  74. package/adminWww/assets/DeviceManager-BFmQeYQ1-v55.js +1 -0
  75. package/adminWww/assets/DeviceManager-BFmQeYQ1-v56.js +1 -0
  76. package/adminWww/assets/DeviceManager-BFmQeYQ1-v57.js +1 -0
  77. package/adminWww/assets/DeviceManager-BFmQeYQ1-v58.js +1 -1
  78. package/adminWww/assets/DeviceManager-BFmQeYQ1-v59.js +1 -1
  79. package/adminWww/assets/DeviceManager-BFmQeYQ1-v60.js +1 -1
  80. package/adminWww/assets/DeviceManager-BFmQeYQ1-v61.js +1 -1
  81. package/adminWww/assets/DeviceManager-BFmQeYQ1-v62.js +1 -0
  82. package/adminWww/assets/DeviceManager-BFmQeYQ1-v63.js +1 -0
  83. package/adminWww/assets/DeviceManager-BFmQeYQ1-v64.js +1 -0
  84. package/adminWww/assets/DeviceManager-BFmQeYQ1-v65.js +1 -0
  85. package/adminWww/assets/DeviceManager-BFmQeYQ1-v66.js +1 -0
  86. package/adminWww/assets/DeviceManager-BFmQeYQ1-v67.js +1 -1
  87. package/adminWww/assets/DeviceManager-BFmQeYQ1-v68.js +1 -0
  88. package/adminWww/assets/DeviceManager-BFmQeYQ1-v69.js +1 -0
  89. package/adminWww/assets/DeviceManager-BFmQeYQ1-v70.js +1 -0
  90. package/adminWww/assets/DeviceManager-BFmQeYQ1.js +1 -2
  91. package/adminWww/assets/EasyMode-B1d9Vdc4-v54.js +1 -0
  92. package/adminWww/assets/EasyMode-B1d9Vdc4-v55.js +1 -0
  93. package/adminWww/assets/EasyMode-B1d9Vdc4-v56.js +1 -0
  94. package/adminWww/assets/EasyMode-B1d9Vdc4-v57.js +1 -0
  95. package/adminWww/assets/EasyMode-B1d9Vdc4-v58.js +1 -1
  96. package/adminWww/assets/EasyMode-B1d9Vdc4-v59.js +1 -1
  97. package/adminWww/assets/EasyMode-B1d9Vdc4-v60.js +1 -1
  98. package/adminWww/assets/EasyMode-B1d9Vdc4-v61.js +1 -1
  99. package/adminWww/assets/EasyMode-B1d9Vdc4-v62.js +1 -0
  100. package/adminWww/assets/EasyMode-B1d9Vdc4-v63.js +1 -0
  101. package/adminWww/assets/EasyMode-B1d9Vdc4-v64.js +1 -0
  102. package/adminWww/assets/EasyMode-B1d9Vdc4-v65.js +1 -0
  103. package/adminWww/assets/EasyMode-B1d9Vdc4-v66.js +1 -0
  104. package/adminWww/assets/EasyMode-B1d9Vdc4-v67.js +1 -1
  105. package/adminWww/assets/EasyMode-B1d9Vdc4-v68.js +1 -0
  106. package/adminWww/assets/EasyMode-B1d9Vdc4-v69.js +1 -0
  107. package/adminWww/assets/EasyMode-B1d9Vdc4-v70.js +1 -0
  108. package/adminWww/assets/EasyMode-B1d9Vdc4.js +1 -2
  109. package/adminWww/assets/Enums-DbWYxKOo-v54.js +1 -0
  110. package/adminWww/assets/Enums-DbWYxKOo-v55.js +1 -0
  111. package/adminWww/assets/Enums-DbWYxKOo-v56.js +1 -0
  112. package/adminWww/assets/Enums-DbWYxKOo-v57.js +1 -0
  113. package/adminWww/assets/Enums-DbWYxKOo-v58.js +1 -91
  114. package/adminWww/assets/Enums-DbWYxKOo-v59.js +1 -91
  115. package/adminWww/assets/Enums-DbWYxKOo-v60.js +1 -91
  116. package/adminWww/assets/Enums-DbWYxKOo-v61.js +1 -91
  117. package/adminWww/assets/Enums-DbWYxKOo-v62.js +1 -0
  118. package/adminWww/assets/Enums-DbWYxKOo-v63.js +1 -0
  119. package/adminWww/assets/Enums-DbWYxKOo-v64.js +1 -0
  120. package/adminWww/assets/Enums-DbWYxKOo-v65.js +1 -0
  121. package/adminWww/assets/Enums-DbWYxKOo-v66.js +1 -0
  122. package/adminWww/assets/Enums-DbWYxKOo-v67.js +1 -91
  123. package/adminWww/assets/Enums-DbWYxKOo-v68.js +1 -0
  124. package/adminWww/assets/Enums-DbWYxKOo-v69.js +1 -0
  125. package/adminWww/assets/Enums-DbWYxKOo-v70.js +91 -0
  126. package/adminWww/assets/Enums-DbWYxKOo.js +91 -2
  127. package/adminWww/assets/Fields-CX3rKuWb-v54.js +1 -0
  128. package/adminWww/assets/Fields-CX3rKuWb-v55.js +1 -0
  129. package/adminWww/assets/Fields-CX3rKuWb-v56.js +1 -0
  130. package/adminWww/assets/Fields-CX3rKuWb-v57.js +1 -0
  131. package/adminWww/assets/Fields-CX3rKuWb-v58.js +1 -1
  132. package/adminWww/assets/Fields-CX3rKuWb-v59.js +1 -1
  133. package/adminWww/assets/Fields-CX3rKuWb-v60.js +1 -1
  134. package/adminWww/assets/Fields-CX3rKuWb-v61.js +1 -1
  135. package/adminWww/assets/Fields-CX3rKuWb-v62.js +1 -0
  136. package/adminWww/assets/Fields-CX3rKuWb-v63.js +1 -0
  137. package/adminWww/assets/Fields-CX3rKuWb-v64.js +1 -0
  138. package/adminWww/assets/Fields-CX3rKuWb-v65.js +1 -0
  139. package/adminWww/assets/Fields-CX3rKuWb-v66.js +1 -0
  140. package/adminWww/assets/Fields-CX3rKuWb-v67.js +1 -1
  141. package/adminWww/assets/Fields-CX3rKuWb-v68.js +1 -0
  142. package/adminWww/assets/Fields-CX3rKuWb-v69.js +1 -0
  143. package/adminWww/assets/Fields-CX3rKuWb-v70.js +1 -0
  144. package/adminWww/assets/Fields-CX3rKuWb.js +1 -2
  145. package/adminWww/assets/Files-Cd2HOzIE-v54.js +1 -0
  146. package/adminWww/assets/Files-Cd2HOzIE-v55.js +1 -0
  147. package/adminWww/assets/Files-Cd2HOzIE-v56.js +1 -0
  148. package/adminWww/assets/Files-Cd2HOzIE-v57.js +1 -0
  149. package/adminWww/assets/Files-Cd2HOzIE-v58.js +1 -1
  150. package/adminWww/assets/Files-Cd2HOzIE-v59.js +1 -1
  151. package/adminWww/assets/Files-Cd2HOzIE-v60.js +1 -1
  152. package/adminWww/assets/Files-Cd2HOzIE-v61.js +1 -1
  153. package/adminWww/assets/Files-Cd2HOzIE-v62.js +1 -0
  154. package/adminWww/assets/Files-Cd2HOzIE-v63.js +1 -0
  155. package/adminWww/assets/Files-Cd2HOzIE-v64.js +1 -0
  156. package/adminWww/assets/Files-Cd2HOzIE-v65.js +1 -0
  157. package/adminWww/assets/Files-Cd2HOzIE-v66.js +1 -0
  158. package/adminWww/assets/Files-Cd2HOzIE-v67.js +1 -1
  159. package/adminWww/assets/Files-Cd2HOzIE-v68.js +1 -0
  160. package/adminWww/assets/Files-Cd2HOzIE-v69.js +1 -0
  161. package/adminWww/assets/Files-Cd2HOzIE-v70.js +1 -0
  162. package/adminWww/assets/Files-Cd2HOzIE.js +1 -2
  163. package/adminWww/assets/Hosts-Bg8QzW5i-v54.js +1 -0
  164. package/adminWww/assets/Hosts-Bg8QzW5i-v55.js +1 -0
  165. package/adminWww/assets/Hosts-Bg8QzW5i-v56.js +1 -0
  166. package/adminWww/assets/Hosts-Bg8QzW5i-v57.js +1 -0
  167. package/adminWww/assets/Hosts-Bg8QzW5i-v58.js +1 -121
  168. package/adminWww/assets/Hosts-Bg8QzW5i-v59.js +1 -121
  169. package/adminWww/assets/Hosts-Bg8QzW5i-v60.js +1 -121
  170. package/adminWww/assets/Hosts-Bg8QzW5i-v61.js +1 -121
  171. package/adminWww/assets/Hosts-Bg8QzW5i-v62.js +1 -0
  172. package/adminWww/assets/Hosts-Bg8QzW5i-v63.js +1 -0
  173. package/adminWww/assets/Hosts-Bg8QzW5i-v64.js +1 -0
  174. package/adminWww/assets/Hosts-Bg8QzW5i-v65.js +1 -0
  175. package/adminWww/assets/Hosts-Bg8QzW5i-v66.js +1 -0
  176. package/adminWww/assets/Hosts-Bg8QzW5i-v67.js +1 -121
  177. package/adminWww/assets/Hosts-Bg8QzW5i-v68.js +1 -0
  178. package/adminWww/assets/Hosts-Bg8QzW5i-v69.js +1 -0
  179. package/adminWww/assets/Hosts-Bg8QzW5i-v70.js +121 -0
  180. package/adminWww/assets/Hosts-Bg8QzW5i.js +121 -2
  181. package/adminWww/assets/Instances-YdaGnS5a-v54.js +1 -0
  182. package/adminWww/assets/Instances-YdaGnS5a-v55.js +1 -0
  183. package/adminWww/assets/Instances-YdaGnS5a-v56.js +1 -0
  184. package/adminWww/assets/Instances-YdaGnS5a-v57.js +1 -0
  185. package/adminWww/assets/Instances-YdaGnS5a-v58.js +1 -2
  186. package/adminWww/assets/Instances-YdaGnS5a-v59.js +1 -2
  187. package/adminWww/assets/Instances-YdaGnS5a-v60.js +1 -2
  188. package/adminWww/assets/Instances-YdaGnS5a-v61.js +1 -2
  189. package/adminWww/assets/Instances-YdaGnS5a-v62.js +1 -0
  190. package/adminWww/assets/Instances-YdaGnS5a-v63.js +1 -0
  191. package/adminWww/assets/Instances-YdaGnS5a-v64.js +1 -0
  192. package/adminWww/assets/Instances-YdaGnS5a-v65.js +1 -0
  193. package/adminWww/assets/Instances-YdaGnS5a-v66.js +1 -0
  194. package/adminWww/assets/Instances-YdaGnS5a-v67.js +1 -2
  195. package/adminWww/assets/Instances-YdaGnS5a-v68.js +1 -0
  196. package/adminWww/assets/Instances-YdaGnS5a-v69.js +1 -0
  197. package/adminWww/assets/Instances-YdaGnS5a-v70.js +2 -0
  198. package/adminWww/assets/Instances-YdaGnS5a.js +2 -2
  199. package/adminWww/assets/Intro-DkwRiz1n-v54.js +1 -0
  200. package/adminWww/assets/Intro-DkwRiz1n-v55.js +1 -0
  201. package/adminWww/assets/Intro-DkwRiz1n-v56.js +1 -0
  202. package/adminWww/assets/Intro-DkwRiz1n-v57.js +1 -0
  203. package/adminWww/assets/Intro-DkwRiz1n-v58.js +1 -2
  204. package/adminWww/assets/Intro-DkwRiz1n-v59.js +1 -2
  205. package/adminWww/assets/Intro-DkwRiz1n-v60.js +1 -2
  206. package/adminWww/assets/Intro-DkwRiz1n-v61.js +1 -2
  207. package/adminWww/assets/Intro-DkwRiz1n-v62.js +1 -0
  208. package/adminWww/assets/Intro-DkwRiz1n-v63.js +1 -0
  209. package/adminWww/assets/Intro-DkwRiz1n-v64.js +1 -0
  210. package/adminWww/assets/Intro-DkwRiz1n-v65.js +1 -0
  211. package/adminWww/assets/Intro-DkwRiz1n-v66.js +1 -0
  212. package/adminWww/assets/Intro-DkwRiz1n-v67.js +1 -2
  213. package/adminWww/assets/Intro-DkwRiz1n-v68.js +1 -0
  214. package/adminWww/assets/Intro-DkwRiz1n-v69.js +1 -0
  215. package/adminWww/assets/Intro-DkwRiz1n-v70.js +2 -0
  216. package/adminWww/assets/Intro-DkwRiz1n.js +2 -2
  217. package/adminWww/assets/Living Room-C7AE21A_.js +1 -1
  218. package/adminWww/assets/Logs-CsVPSLJH-v54.js +1 -0
  219. package/adminWww/assets/Logs-CsVPSLJH-v55.js +1 -0
  220. package/adminWww/assets/Logs-CsVPSLJH-v56.js +1 -0
  221. package/adminWww/assets/Logs-CsVPSLJH-v57.js +1 -0
  222. package/adminWww/assets/Logs-CsVPSLJH-v58.js +1 -1
  223. package/adminWww/assets/Logs-CsVPSLJH-v59.js +1 -1
  224. package/adminWww/assets/Logs-CsVPSLJH-v60.js +1 -1
  225. package/adminWww/assets/Logs-CsVPSLJH-v61.js +1 -1
  226. package/adminWww/assets/Logs-CsVPSLJH-v62.js +1 -0
  227. package/adminWww/assets/Logs-CsVPSLJH-v63.js +1 -0
  228. package/adminWww/assets/Logs-CsVPSLJH-v64.js +1 -0
  229. package/adminWww/assets/Logs-CsVPSLJH-v65.js +1 -0
  230. package/adminWww/assets/Logs-CsVPSLJH-v66.js +1 -0
  231. package/adminWww/assets/Logs-CsVPSLJH-v67.js +1 -1
  232. package/adminWww/assets/Logs-CsVPSLJH-v68.js +1 -0
  233. package/adminWww/assets/Logs-CsVPSLJH-v69.js +1 -0
  234. package/adminWww/assets/Logs-CsVPSLJH-v70.js +1 -0
  235. package/adminWww/assets/Logs-CsVPSLJH.js +1 -2
  236. package/adminWww/assets/Objects-DPan0bzw-v54.js +1 -1
  237. package/adminWww/assets/Objects-DPan0bzw-v55.js +1 -1
  238. package/adminWww/assets/Objects-DPan0bzw-v56.js +1 -1
  239. package/adminWww/assets/Objects-DPan0bzw-v57.js +1 -1
  240. package/adminWww/assets/Objects-DPan0bzw-v58.js +1 -1
  241. package/adminWww/assets/Objects-DPan0bzw-v59.js +1 -1
  242. package/adminWww/assets/Objects-DPan0bzw-v60.js +1 -1
  243. package/adminWww/assets/Objects-DPan0bzw-v61.js +1 -878
  244. package/adminWww/assets/Objects-DPan0bzw-v62.js +1 -0
  245. package/adminWww/assets/Objects-DPan0bzw-v63.js +1 -0
  246. package/adminWww/assets/Objects-DPan0bzw-v64.js +1 -0
  247. package/adminWww/assets/Objects-DPan0bzw-v65.js +1 -0
  248. package/adminWww/assets/Objects-DPan0bzw-v66.js +1 -0
  249. package/adminWww/assets/Objects-DPan0bzw-v67.js +1 -878
  250. package/adminWww/assets/Objects-DPan0bzw-v68.js +1 -0
  251. package/adminWww/assets/Objects-DPan0bzw-v69.js +1 -0
  252. package/adminWww/assets/Objects-DPan0bzw-v70.js +878 -0
  253. package/adminWww/assets/Objects-DPan0bzw.js +878 -2
  254. package/adminWww/assets/Rear Wall-BNvjPc7z.js +1 -1
  255. package/adminWww/assets/Storeroom-DVXZ_Y0f.js +1 -1
  256. package/adminWww/assets/Tv-GicrNRwV.js +1 -1
  257. package/adminWww/assets/Users-BgnBRgwU-v54.js +1 -0
  258. package/adminWww/assets/Users-BgnBRgwU-v55.js +1 -0
  259. package/adminWww/assets/Users-BgnBRgwU-v56.js +1 -0
  260. package/adminWww/assets/Users-BgnBRgwU-v57.js +1 -0
  261. package/adminWww/assets/Users-BgnBRgwU-v58.js +1 -1
  262. package/adminWww/assets/Users-BgnBRgwU-v59.js +1 -1
  263. package/adminWww/assets/Users-BgnBRgwU-v60.js +1 -1
  264. package/adminWww/assets/Users-BgnBRgwU-v61.js +1 -1
  265. package/adminWww/assets/Users-BgnBRgwU-v62.js +1 -0
  266. package/adminWww/assets/Users-BgnBRgwU-v63.js +1 -0
  267. package/adminWww/assets/Users-BgnBRgwU-v64.js +1 -0
  268. package/adminWww/assets/Users-BgnBRgwU-v65.js +1 -0
  269. package/adminWww/assets/Users-BgnBRgwU-v66.js +1 -0
  270. package/adminWww/assets/Users-BgnBRgwU-v67.js +1 -1
  271. package/adminWww/assets/Users-BgnBRgwU-v68.js +1 -0
  272. package/adminWww/assets/Users-BgnBRgwU-v69.js +1 -0
  273. package/adminWww/assets/Users-BgnBRgwU-v70.js +1 -0
  274. package/adminWww/assets/Users-BgnBRgwU.js +1 -2
  275. package/adminWww/assets/bootstrap-COulQZax-v54.js +1 -1
  276. package/adminWww/assets/bootstrap-COulQZax-v55.js +1 -1
  277. package/adminWww/assets/bootstrap-COulQZax-v56.js +1 -1
  278. package/adminWww/assets/bootstrap-COulQZax-v57.js +1 -1
  279. package/adminWww/assets/bootstrap-COulQZax-v58.js +1 -1
  280. package/adminWww/assets/bootstrap-COulQZax-v59.js +1 -1
  281. package/adminWww/assets/bootstrap-COulQZax-v60.js +1 -1
  282. package/adminWww/assets/bootstrap-COulQZax-v61.js +1 -1
  283. package/adminWww/assets/bootstrap-COulQZax-v62.js +1 -0
  284. package/adminWww/assets/bootstrap-COulQZax-v63.js +1 -0
  285. package/adminWww/assets/bootstrap-COulQZax-v64.js +1 -0
  286. package/adminWww/assets/bootstrap-COulQZax-v65.js +1 -0
  287. package/adminWww/assets/bootstrap-COulQZax-v66.js +1 -0
  288. package/adminWww/assets/bootstrap-COulQZax-v67.js +1 -1
  289. package/adminWww/assets/bootstrap-COulQZax-v68.js +1 -1
  290. package/adminWww/assets/bootstrap-COulQZax-v69.js +1 -317
  291. package/adminWww/assets/bootstrap-COulQZax-v70.js +317 -0
  292. package/adminWww/assets/bootstrap-COulQZax.js +2 -1
  293. package/adminWww/assets/hostInit-OBG53iVO.js +1 -1
  294. package/adminWww/assets/hostInit-v54.js +1 -1
  295. package/adminWww/assets/hostInit-v55.js +1 -1
  296. package/adminWww/assets/hostInit-v56.js +1 -1
  297. package/adminWww/assets/hostInit-v57.js +1 -1
  298. package/adminWww/assets/hostInit-v58.js +1 -1
  299. package/adminWww/assets/hostInit-v59.js +1 -1
  300. package/adminWww/assets/hostInit-v60.js +1 -1
  301. package/adminWww/assets/hostInit-v61.js +1 -2
  302. package/adminWww/assets/hostInit-v62.js +1 -0
  303. package/adminWww/assets/hostInit-v63.js +1 -0
  304. package/adminWww/assets/hostInit-v64.js +1 -0
  305. package/adminWww/assets/hostInit-v65.js +1 -0
  306. package/adminWww/assets/hostInit-v66.js +1 -0
  307. package/adminWww/assets/hostInit-v67.js +1 -0
  308. package/adminWww/assets/hostInit-v68.js +1 -0
  309. package/adminWww/assets/hostInit-v69.js +1 -0
  310. package/adminWww/assets/hostInit-v70.js +2 -0
  311. package/adminWww/assets/index-CQZugZ1z-v54.js +1 -0
  312. package/adminWww/assets/index-CQZugZ1z-v55.js +1 -1
  313. package/adminWww/assets/index-CQZugZ1z-v56.js +1 -1
  314. package/adminWww/assets/index-CQZugZ1z-v57.js +1 -1
  315. package/adminWww/assets/index-CQZugZ1z-v58.js +1 -1
  316. package/adminWww/assets/index-CQZugZ1z-v59.js +1 -1
  317. package/adminWww/assets/index-CQZugZ1z-v60.js +1 -1
  318. package/adminWww/assets/index-CQZugZ1z-v61.js +1 -1
  319. package/adminWww/assets/index-CQZugZ1z-v62.js +1 -0
  320. package/adminWww/assets/index-CQZugZ1z-v63.js +1 -0
  321. package/adminWww/assets/index-CQZugZ1z-v64.js +1 -0
  322. package/adminWww/assets/index-CQZugZ1z-v65.js +1 -0
  323. package/adminWww/assets/index-CQZugZ1z-v66.js +1 -0
  324. package/adminWww/assets/index-CQZugZ1z-v67.js +1 -1
  325. package/adminWww/assets/index-CQZugZ1z-v68.js +1 -1
  326. package/adminWww/assets/index-CQZugZ1z-v69.js +1 -2
  327. package/adminWww/assets/index-CQZugZ1z-v70.js +2 -0
  328. package/adminWww/assets/index-CQZugZ1z.js +1 -1
  329. package/adminWww/assets/index-D2ymscJA-v54.js +1 -1
  330. package/adminWww/assets/index-D2ymscJA-v55.js +1 -1
  331. package/adminWww/assets/index-D2ymscJA-v56.js +1 -1
  332. package/adminWww/assets/index-D2ymscJA-v57.js +1 -1
  333. package/adminWww/assets/index-D2ymscJA-v58.js +1 -1
  334. package/adminWww/assets/index-D2ymscJA-v59.js +1 -1
  335. package/adminWww/assets/index-D2ymscJA-v60.js +1 -1
  336. package/adminWww/assets/index-D2ymscJA-v61.js +1 -950
  337. package/adminWww/assets/index-D2ymscJA-v62.js +1 -0
  338. package/adminWww/assets/index-D2ymscJA-v63.js +1 -0
  339. package/adminWww/assets/index-D2ymscJA-v64.js +1 -0
  340. package/adminWww/assets/index-D2ymscJA-v65.js +1 -0
  341. package/adminWww/assets/index-D2ymscJA-v66.js +1 -0
  342. package/adminWww/assets/index-D2ymscJA-v67.js +1 -0
  343. package/adminWww/assets/index-D2ymscJA-v68.js +1 -0
  344. package/adminWww/assets/index-D2ymscJA-v69.js +1 -0
  345. package/adminWww/assets/index-D2ymscJA-v70.js +950 -0
  346. package/adminWww/assets/index-D2ymscJA.js +950 -2
  347. package/adminWww/css/eos-branding.css +24 -159
  348. package/adminWww/index.html +13 -14
  349. package/adminWww/js/eos-assistant.js +1 -1
  350. package/adminWww/js/eos-branding.js +31 -108
  351. package/adminWww/js/eos-console-quiet.js +4 -60
  352. package/adminWww/js/eos-objects-state-tools.js +1 -1
  353. package/adminWww/js/eos-performance-guard.js +1 -1
  354. package/adminWww/js/eos-policy-client.js +188 -0
  355. package/adminWww/js/eos-role-ui.js +27 -30
  356. package/adminWww/js/eos-runtime-fixes.js +1 -1
  357. package/adminWww/js/eos-security-ui.js +30 -23
  358. package/adminWww/mf-manifest.json +1 -1
  359. package/adminWww/remoteEntry-v54.js +1 -1
  360. package/adminWww/remoteEntry-v55.js +1 -1
  361. package/adminWww/remoteEntry-v56.js +1 -1
  362. package/adminWww/remoteEntry-v57.js +1 -1
  363. package/adminWww/remoteEntry-v58.js +1 -1
  364. package/adminWww/remoteEntry-v59.js +1 -1
  365. package/adminWww/remoteEntry-v60.js +1 -1
  366. package/adminWww/remoteEntry-v61.js +1 -2
  367. package/adminWww/remoteEntry-v62.js +1 -0
  368. package/adminWww/remoteEntry-v63.js +1 -0
  369. package/adminWww/remoteEntry-v64.js +1 -0
  370. package/adminWww/remoteEntry-v65.js +1 -0
  371. package/adminWww/remoteEntry-v66.js +1 -0
  372. package/adminWww/remoteEntry-v67.js +1 -0
  373. package/adminWww/remoteEntry-v68.js +1 -0
  374. package/adminWww/remoteEntry-v69.js +1 -0
  375. package/adminWww/remoteEntry-v70.js +2 -0
  376. package/adminWww/remoteEntry.js +1 -1
  377. package/build/lib/web.js +19 -17
  378. package/build/main.js +56 -7
  379. package/io-package.json +10 -5
  380. package/package.json +6 -5
  381. package/tools/nexowatt-validate-package.cjs +6 -95
@@ -3626,18 +3626,27 @@ html.eos-objects-surface .MuiTooltip-tooltip {
3626
3626
  max-width: min(520px, 80vw) !important;
3627
3627
  }
3628
3628
 
3629
- /* === NexoWatt EOS v60: modules tile action click stability ==================
3630
- The adapter/module tile description panel is purely an EOS styled wrapper. It
3631
- must never swallow clicks from the native Admin action buttons inside the
3632
- footer (upload, specific version, auto upgrade, help, add instance). */
3629
+
3630
+ /* === NexoWatt EOS v7.9.70 stability additions =============================
3631
+ Keep the proven v57/v58 header. These rules only harden module-card actions
3632
+ and native MUI selection poppers; they do not hide or recreate toolbar items. */
3633
3633
  html.eos-route-adapters #app-paper .eos-adapter-info-card,
3634
3634
  html.eos-route-intro #app-paper .eos-adapter-info-card,
3635
3635
  html.eos-route-adapters #app-paper .MuiCard-root > div[style*="position: absolute"][style*="z-index: 3"],
3636
3636
  html.eos-route-intro #app-paper .MuiCard-root > div[style*="position: absolute"][style*="z-index: 3"] {
3637
+ display: flex !important;
3638
+ flex-direction: column !important;
3637
3639
  pointer-events: auto !important;
3638
3640
  overflow: hidden !important;
3639
3641
  }
3640
-
3642
+ html.eos-route-adapters #app-paper .eos-adapter-info-card .MuiCardContent-root,
3643
+ html.eos-route-intro #app-paper .eos-adapter-info-card .MuiCardContent-root,
3644
+ html.eos-route-adapters #app-paper .MuiCard-root > div[style*="position: absolute"][style*="z-index: 3"] .MuiCardContent-root,
3645
+ html.eos-route-intro #app-paper .MuiCard-root > div[style*="position: absolute"][style*="z-index: 3"] .MuiCardContent-root {
3646
+ flex: 1 1 auto !important;
3647
+ min-height: 0 !important;
3648
+ overflow: auto !important;
3649
+ }
3641
3650
  html.eos-route-adapters #app-paper .eos-adapter-info-card > .MuiBox-root,
3642
3651
  html.eos-route-intro #app-paper .eos-adapter-info-card > .MuiBox-root,
3643
3652
  html.eos-route-adapters #app-paper .MuiCard-root > div[style*="position: absolute"][style*="z-index: 3"] > .MuiBox-root,
@@ -3645,195 +3654,51 @@ html.eos-route-intro #app-paper .MuiCard-root > div[style*="position: absolute"]
3645
3654
  position: relative !important;
3646
3655
  z-index: 40 !important;
3647
3656
  pointer-events: auto !important;
3657
+ flex: 0 0 auto !important;
3648
3658
  overflow: visible !important;
3649
3659
  }
3650
-
3651
3660
  html.eos-route-adapters #app-paper .eos-adapter-info-card button,
3652
3661
  html.eos-route-adapters #app-paper .eos-adapter-info-card [role="button"],
3653
- html.eos-route-adapters #app-paper .eos-adapter-info-card .MuiIconButton-root,
3654
- html.eos-route-adapters #app-paper .eos-adapter-info-card .MuiButtonBase-root,
3655
3662
  html.eos-route-intro #app-paper .eos-adapter-info-card button,
3656
3663
  html.eos-route-intro #app-paper .eos-adapter-info-card [role="button"],
3657
- html.eos-route-intro #app-paper .eos-adapter-info-card .MuiIconButton-root,
3658
- html.eos-route-intro #app-paper .eos-adapter-info-card .MuiButtonBase-root,
3659
3664
  html.eos-route-adapters #app-paper .MuiCard-root > div[style*="position: absolute"][style*="z-index: 3"] button,
3660
3665
  html.eos-route-adapters #app-paper .MuiCard-root > div[style*="position: absolute"][style*="z-index: 3"] [role="button"],
3661
- html.eos-route-adapters #app-paper .MuiCard-root > div[style*="position: absolute"][style*="z-index: 3"] .MuiIconButton-root,
3662
- html.eos-route-adapters #app-paper .MuiCard-root > div[style*="position: absolute"][style*="z-index: 3"] .MuiButtonBase-root,
3663
3666
  html.eos-route-intro #app-paper .MuiCard-root > div[style*="position: absolute"][style*="z-index: 3"] button,
3664
- html.eos-route-intro #app-paper .MuiCard-root > div[style*="position: absolute"][style*="z-index: 3"] [role="button"],
3665
- html.eos-route-intro #app-paper .MuiCard-root > div[style*="position: absolute"][style*="z-index: 3"] .MuiIconButton-root,
3666
- html.eos-route-intro #app-paper .MuiCard-root > div[style*="position: absolute"][style*="z-index: 3"] .MuiButtonBase-root {
3667
- pointer-events: auto !important;
3667
+ html.eos-route-intro #app-paper .MuiCard-root > div[style*="position: absolute"][style*="z-index: 3"] [role="button"] {
3668
3668
  position: relative !important;
3669
3669
  z-index: 45 !important;
3670
+ pointer-events: auto !important;
3670
3671
  visibility: visible !important;
3671
3672
  opacity: 1 !important;
3672
3673
  cursor: pointer !important;
3673
3674
  }
3674
3675
 
3675
- html.eos-route-adapters #app-paper .eos-adapter-info-card .MuiCardContent-root,
3676
- html.eos-route-intro #app-paper .eos-adapter-info-card .MuiCardContent-root {
3677
- pointer-events: auto !important;
3678
- min-height: 0 !important;
3679
- }
3680
-
3681
- /* v60: module-card action/footer click hardening.
3682
- The description overlay must be readable, but it must never swallow clicks on
3683
- the native Admin action buttons: add instance, automatic update, readme,
3684
- upload, delete and specific version. */
3685
- html.eos-route-adapters #app-paper .MuiCard-root > div[style*="position: absolute"][style*="z-index: 3"],
3686
- html.eos-route-intro #app-paper .MuiCard-root > div[style*="position: absolute"][style*="z-index: 3"] {
3687
- display: flex !important;
3688
- flex-direction: column !important;
3689
- pointer-events: auto !important;
3690
- }
3691
- html.eos-route-adapters #app-paper .MuiCard-root > div[style*="position: absolute"][style*="z-index: 3"]::before,
3692
- html.eos-route-intro #app-paper .MuiCard-root > div[style*="position: absolute"][style*="z-index: 3"]::before,
3693
- html.eos-route-adapters #app-paper .MuiCard-root > div[style*="position: absolute"][style*="z-index: 3"] .MuiCardContent-root::before,
3694
- html.eos-route-intro #app-paper .MuiCard-root > div[style*="position: absolute"][style*="z-index: 3"] .MuiCardContent-root::before {
3695
- pointer-events: none !important;
3696
- }
3697
- html.eos-route-adapters #app-paper .MuiCard-root > div[style*="position: absolute"][style*="z-index: 3"] .MuiCardContent-root,
3698
- html.eos-route-intro #app-paper .MuiCard-root > div[style*="position: absolute"][style*="z-index: 3"] .MuiCardContent-root {
3699
- flex: 1 1 auto !important;
3700
- min-height: 0 !important;
3701
- overflow: auto !important;
3702
- }
3703
- html.eos-route-adapters #app-paper .MuiCard-root > div[style*="position: absolute"][style*="z-index: 3"] > .MuiBox-root,
3704
- html.eos-route-intro #app-paper .MuiCard-root > div[style*="position: absolute"][style*="z-index: 3"] > .MuiBox-root,
3705
- html.eos-route-adapters #app-paper .MuiCard-root > div[style*="position: absolute"][style*="z-index: 3"] div[style*="justify-content: space-between"],
3706
- html.eos-route-intro #app-paper .MuiCard-root > div[style*="position: absolute"][style*="z-index: 3"] div[style*="justify-content: space-between"] {
3707
- position: relative !important;
3708
- z-index: 40 !important;
3709
- pointer-events: auto !important;
3710
- flex: 0 0 auto !important;
3711
- }
3712
- html.eos-route-adapters #app-paper .MuiCard-root > div[style*="position: absolute"][style*="z-index: 3"] button,
3713
- html.eos-route-adapters #app-paper .MuiCard-root > div[style*="position: absolute"][style*="z-index: 3"] .MuiIconButton-root,
3714
- html.eos-route-adapters #app-paper .MuiCard-root > div[style*="position: absolute"][style*="z-index: 3"] .MuiButtonBase-root,
3715
- html.eos-route-intro #app-paper .MuiCard-root > div[style*="position: absolute"][style*="z-index: 3"] button,
3716
- html.eos-route-intro #app-paper .MuiCard-root > div[style*="position: absolute"][style*="z-index: 3"] .MuiIconButton-root,
3717
- html.eos-route-intro #app-paper .MuiCard-root > div[style*="position: absolute"][style*="z-index: 3"] .MuiButtonBase-root {
3718
- position: relative !important;
3719
- z-index: 41 !important;
3720
- pointer-events: auto !important;
3721
- }
3722
- html.eos-app .MuiDialog-root,
3723
- html.eos-app .MuiModal-root,
3724
- html.eos-app .MuiPopover-root,
3725
- html.eos-app .MuiMenu-root {
3726
- z-index: 7000 !important;
3727
- pointer-events: auto !important;
3728
- }
3729
- html.eos-app .MuiTooltip-popper {
3730
- pointer-events: none !important;
3731
- }
3732
-
3733
-
3734
- /* === NexoWatt EOS v61: native dialog autocomplete/listbox layer fix ==========
3735
- MUI Autocomplete/Select poppers are rendered in a body portal, not inside the
3736
- dialog. Our EOS dialog z-index was higher than the native popper z-index, so
3737
- the adapter search list appeared behind the install dialog and could not be
3738
- selected. Keep native poppers above dialogs/backdrops and keep options
3739
- clickable. */
3676
+ /* Autocomplete, Select and version lists are body portals. Keep them above
3677
+ dialogs without altering the dialog component or intercepting tooltip clicks. */
3740
3678
  html.eos-app body > .MuiAutocomplete-popper,
3741
- html.eos-app body > .MuiPopper-root,
3679
+ html.eos-app body > .MuiPopper-root[data-popper-placement],
3742
3680
  html.eos-app body > .MuiPopover-root,
3743
3681
  html.eos-app body > .MuiMenu-root,
3744
- html.eos-app .eos-native-popup-safe.MuiAutocomplete-popper,
3745
- html.eos-app .eos-native-popup-safe.MuiPopper-root,
3746
- html.eos-app .eos-native-popup-safe.MuiPopover-root,
3747
- html.eos-app .eos-native-popup-safe.MuiMenu-root,
3748
3682
  html.eos-app .MuiAutocomplete-popper,
3749
3683
  html.eos-app .MuiPopper-root[data-popper-placement],
3750
3684
  html.eos-app .MuiPopover-root,
3751
3685
  html.eos-app .MuiMenu-root {
3752
- z-index: 15000 !important;
3753
- pointer-events: auto !important;
3754
- }
3755
- html.eos-app body > [role="presentation"]:has(.MuiAutocomplete-paper),
3756
- html.eos-app body > [role="presentation"]:has([role="listbox"]),
3757
- html.eos-app body > [role="presentation"]:has(.MuiMenu-paper) {
3758
- z-index: 15000 !important;
3686
+ z-index: 9000 !important;
3759
3687
  pointer-events: auto !important;
3760
3688
  }
3761
3689
  html.eos-app .MuiAutocomplete-paper,
3762
3690
  html.eos-app .MuiAutocomplete-listbox,
3763
3691
  html.eos-app .MuiMenu-paper,
3764
3692
  html.eos-app .MuiPopover-paper,
3765
- html.eos-app .MuiList-root[role="listbox"],
3766
3693
  html.eos-app [role="listbox"],
3767
3694
  html.eos-app [role="option"],
3768
- html.eos-app .MuiAutocomplete-option {
3769
- z-index: 15001 !important;
3770
- pointer-events: auto !important;
3771
- visibility: visible !important;
3772
- opacity: 1 !important;
3773
- }
3774
3695
  html.eos-app .MuiAutocomplete-option,
3775
- html.eos-app [role="listbox"] [role="option"],
3776
3696
  html.eos-app .MuiMenuItem-root {
3777
- cursor: pointer !important;
3778
- user-select: none !important;
3779
- }
3780
- html.eos-app .MuiAutocomplete-option.Mui-focused,
3781
- html.eos-app .MuiAutocomplete-option[aria-selected="true"],
3782
- html.eos-app [role="option"]:hover,
3783
- html.eos-app .MuiMenuItem-root:hover {
3784
- background: rgba(0, 255, 136, 0.18) !important;
3785
- }
3786
- /* Native tooltips should stay above the UI visually but must not intercept clicks. */
3787
- html.eos-app .MuiTooltip-popper {
3788
- z-index: 16000 !important;
3789
- pointer-events: none !important;
3790
- }
3791
-
3792
-
3793
- /* === NexoWatt EOS v62: adapter filter overlay cleanup =====================
3794
- Keep the module cards and top filter controls. Hide only stale/orphaned
3795
- native MUI filter menus that fall back into the left header/navigation area
3796
- and cover the EOS adapter view. Dialog listboxes/autocomplete remain active. */
3797
- html.eos-route-adapters body > .MuiMenu-root.eos-adapter-filter-menu-stale,
3798
- html.eos-route-adapters body > .MuiPopover-root.eos-adapter-filter-menu-stale,
3799
- html.eos-route-adapters body > [role="presentation"].eos-adapter-filter-menu-stale,
3800
- html.eos-route-adapters .eos-adapter-filter-menu-stale,
3801
- html.eos-route-adapters .eos-adapter-filter-menu-stale-paper {
3802
- display: none !important;
3803
- visibility: hidden !important;
3804
- opacity: 0 !important;
3805
- pointer-events: none !important;
3806
- }
3807
-
3808
- html.eos-route-adapters .MuiDialog-root .MuiAutocomplete-popper,
3809
- html.eos-route-adapters .MuiDialog-root [role="listbox"],
3810
- html.eos-route-adapters .MuiModal-root .MuiAutocomplete-popper,
3811
- html.eos-route-adapters .MuiModal-root [role="listbox"] {
3812
- display: block !important;
3697
+ pointer-events: auto !important;
3813
3698
  visibility: visible !important;
3814
3699
  opacity: 1 !important;
3815
- pointer-events: auto !important;
3816
- z-index: 16000 !important;
3817
3700
  }
3818
-
3819
-
3820
- /* === NexoWatt EOS v7.9.69: exact v57 header baseline + narrow fallback === */
3821
- html.eos-app .eos-small-top-left-native-tab-hidden,
3822
- html.eos-app [aria-hidden="true"].eos-small-top-left-native-tab-hidden {
3823
- display: none !important;
3824
- visibility: hidden !important;
3825
- opacity: 0 !important;
3701
+ html.eos-app .MuiTooltip-popper {
3702
+ z-index: 9100 !important;
3826
3703
  pointer-events: none !important;
3827
- width: 0 !important;
3828
- min-width: 0 !important;
3829
- max-width: 0 !important;
3830
- height: 0 !important;
3831
- min-height: 0 !important;
3832
- max-height: 0 !important;
3833
- margin: 0 !important;
3834
- padding: 0 !important;
3835
- overflow: hidden !important;
3836
- flex: 0 0 0 !important;
3837
- border: 0 !important;
3838
- box-shadow: none !important;
3839
3704
  }
@@ -4,13 +4,13 @@
4
4
  translate="no"
5
5
  >
6
6
  <head>
7
- <script src="./js/eos-console-quiet.js?v=69"></script>
8
- <script type="module" src="./assets/hostInit-v61.js?v=69"></script>
9
-
10
- <meta charset="utf-8" />
11
- <meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
7
+ <meta http-equiv="Cache-Control" content="no-store, no-cache, must-revalidate" />
12
8
  <meta http-equiv="Pragma" content="no-cache" />
13
9
  <meta http-equiv="Expires" content="0" />
10
+ <script src="./js/eos-console-quiet.js?v=70"></script>
11
+ <script type="module" src="./assets/hostInit-v70.js?v=70"></script>
12
+
13
+ <meta charset="utf-8" />
14
14
  <link
15
15
  rel="icon"
16
16
  href="favicon.ico"
@@ -35,7 +35,7 @@
35
35
  rel="stylesheet"
36
36
  href="css/leaflet.css"
37
37
  />
38
- <link rel="stylesheet" href="./css/eos-branding.css?v=69" />
38
+ <link rel="stylesheet" href="./css/eos-branding.css?v=70" />
39
39
  <link
40
40
  rel="manifest"
41
41
  href="manifest.json"
@@ -155,16 +155,15 @@
155
155
  false,
156
156
  );
157
157
  </script>
158
- <script type="module" crossorigin src="./assets/index-CQZugZ1z-v69.js?v=69"></script>
158
+ <script type="module" crossorigin src="./assets/index-CQZugZ1z-v70.js?v=70"></script>
159
159
  <link rel="modulepreload" crossorigin href="./assets/preload-helper-BDBacUwf.js">
160
160
  <link rel="modulepreload" crossorigin href="./assets/iobroker_admin__mf_v__runtimeInit__mf_v__-g2X2zhAf.js">
161
- <script defer src="./js/eos-branding.js?v=69"></script>
162
- <script defer src="./js/eos-toolbar-ghost-cleanup.js?v=69"></script>
163
- <script defer src="./js/eos-adapter-surface-cleanup.js?v=69"></script>
164
- <script defer src="./js/eos-security-ui.js?v=69"></script>
165
- <script defer src="./js/eos-role-ui.js?v=69"></script>
166
- <script defer src="./js/eos-assistant.js?v=69"></script>
167
- <script defer src="./js/eos-objects-state-tools.js?v=69"></script>
161
+ <script defer src="./js/eos-policy-client.js?v=70"></script>
162
+ <script defer src="./js/eos-branding.js?v=70"></script>
163
+ <script defer src="./js/eos-security-ui.js?v=70"></script>
164
+ <script defer src="./js/eos-role-ui.js?v=70"></script>
165
+ <script defer src="./js/eos-assistant.js?v=70"></script>
166
+ <script defer src="./js/eos-objects-state-tools.js?v=70"></script>
168
167
  </head>
169
168
  <body>
170
169
  <noscript>You need to enable JavaScript to run this app.</noscript>
@@ -2,5 +2,5 @@
2
2
  'use strict';
3
3
  // v31: EOS Assist is rendered by eos-branding.js so it can share route/security state.
4
4
  // This file stays as a lightweight compatibility hook for cache-safe deployments.
5
- window.NEXOWATT_EOS_ASSIST_VERSION = 'v65-native-drawer-header-hard-remove';
5
+ window.NEXOWATT_EOS_ASSIST_VERSION = 'v70-stability';
6
6
  })();
@@ -1,7 +1,7 @@
1
1
  (() => {
2
2
  'use strict';
3
3
 
4
- window.NEXOWATT_EOS_UI_VERSION = 'v69-v57-header-baseline-restore';
4
+ window.NEXOWATT_EOS_UI_VERSION = 'v70-stability';
5
5
 
6
6
  const BRAND = 'NexoWatt EOS';
7
7
  const EOS_MEANING = 'Energy Operation System';
@@ -142,6 +142,8 @@
142
142
  protectedAdapters: CORE_PROTECTED_ADAPTERS,
143
143
  },
144
144
  securityFetchStarted: false,
145
+ unsubscribePolicy: null,
146
+ unsubscribeDom: null,
145
147
  assistOpen: false,
146
148
  };
147
149
 
@@ -340,26 +342,27 @@
340
342
  document.documentElement.classList.toggle('eos-security-nonadmin', policy.loaded && !policy.isAdmin);
341
343
  };
342
344
 
343
- const fetchSecurityPolicy = async () => {
345
+ const fetchSecurityPolicy = () => {
344
346
  if (state.securityFetchStarted) return;
345
347
  state.securityFetchStarted = true;
346
- for (const url of securityEndpointUrls()) {
347
- try {
348
- const response = await fetch(url, { credentials: 'same-origin', cache: 'no-store' });
349
- if (!response.ok) continue;
350
- const json = await response.json();
351
- if (!json || json.error) continue;
352
- state.securityPolicy = normalizeSecurityPolicy(json);
353
- applySecurityClasses();
354
- scheduleFullPatch(0);
348
+ const connect = () => {
349
+ const client = window.NEXOWATT_EOS_POLICY_CLIENT;
350
+ if (!client) {
351
+ window.setTimeout(connect, 250);
355
352
  return;
356
- } catch (e) {
357
- // Security endpoint may be unavailable during login or old cache. Fallback below.
358
353
  }
359
- }
360
- state.securityPolicy = normalizeSecurityPolicy({ isAdmin: false, protectedAdapters: CORE_PROTECTED_ADAPTERS });
361
- applySecurityClasses();
362
- scheduleFullPatch(0);
354
+ const apply = policy => {
355
+ if (!policy || policy.role === 'unknown') return;
356
+ state.securityPolicy = normalizeSecurityPolicy(policy);
357
+ applySecurityClasses();
358
+ scheduleFullPatch(0);
359
+ };
360
+ apply(client.getPolicy?.());
361
+ state.unsubscribePolicy?.();
362
+ state.unsubscribePolicy = client.subscribe?.(apply);
363
+ void client.refresh?.();
364
+ };
365
+ connect();
363
366
  };
364
367
 
365
368
  const isAdminUser = () => !!state.securityPolicy?.isAdmin;
@@ -475,14 +478,14 @@
475
478
  const selectors = [
476
479
  '.MuiDialog-root', '.MuiModal-root', '.MuiPopover-root', '.MuiPopper-root',
477
480
  '.MuiMenu-root', '.MuiAutocomplete-popper', '.MuiAutocomplete-listbox',
478
- 'body > [role="presentation"]', '[role="dialog"]', '[role="listbox"]', '[role="menu"]'
481
+ '[role="dialog"]', '[role="listbox"]', '[role="menu"]'
479
482
  ].join(',');
480
483
  document.querySelectorAll(selectors).forEach(el => {
481
484
  el.classList.add('eos-native-popup-safe');
482
485
  if (el.style) {
483
486
  el.style.pointerEvents = 'auto';
484
- const isFloating = el.matches('.MuiPopover-root,.MuiPopper-root,.MuiMenu-root,.MuiAutocomplete-popper,[role="listbox"],[role="menu"],body > [role="presentation"]');
485
- if (isFloating && !el.closest('.MuiDialog-paper')) el.style.zIndex = '15000';
487
+ const isFloating = el.matches('.MuiPopover-root,.MuiPopper-root,.MuiMenu-root,.MuiAutocomplete-popper,[role="listbox"],[role="menu"]');
488
+ if (isFloating && !el.closest('.MuiDialog-paper')) el.style.zIndex = '6500';
486
489
  }
487
490
  });
488
491
  });
@@ -878,75 +881,6 @@
878
881
  }
879
882
  });
880
883
 
881
-
882
- const removeSmallTopLeftNativeNexoWattTab = () => safe(() => {
883
- if (!window.matchMedia?.('(min-width: 901px)').matches) return;
884
-
885
- const primary = document.querySelector('.eos-brand-badge, .eos-primary-brand');
886
- const isPrimary = element => !!element && (
887
- element === primary ||
888
- element.matches?.('.eos-brand-badge, .eos-primary-brand') ||
889
- element.closest?.('.eos-brand-badge, .eos-primary-brand') ||
890
- element.querySelector?.('.eos-brand-badge, .eos-primary-brand')
891
- );
892
- const hasShortNexoWattIdentity = element => {
893
- if (!element || isPrimary(element)) return false;
894
- const text = normalize(element.textContent || '');
895
- if (/energy operation system|nexowatt eos/.test(text)) return false;
896
- const image = element.querySelector?.('img, .MuiAvatar-img, .MuiAvatar-root');
897
- const imageText = normalize(`${image?.getAttribute?.('alt') || ''} ${image?.getAttribute?.('src') || ''}`);
898
- return /nexowatt/.test(text) || /nexowatt/.test(imageText);
899
- };
900
- const hide = element => {
901
- if (!element || isPrimary(element)) return;
902
- element.classList.add('eos-small-top-left-native-tab-hidden');
903
- element.setAttribute('aria-hidden', 'true');
904
- element.setAttribute('inert', '');
905
- element.querySelectorAll?.('button, a, [role="button"]').forEach(control => {
906
- control.setAttribute('tabindex', '-1');
907
- control.setAttribute('aria-hidden', 'true');
908
- });
909
- if (element.style) {
910
- for (const [name, value] of Object.entries({
911
- display: 'none', visibility: 'hidden', opacity: '0', pointerEvents: 'none',
912
- width: '0', minWidth: '0', maxWidth: '0', height: '0', minHeight: '0', maxHeight: '0',
913
- margin: '0', padding: '0', overflow: 'hidden', flex: '0 0 0', border: '0', boxShadow: 'none',
914
- })) element.style.setProperty(name.replace(/[A-Z]/g, char => `-${char.toLowerCase()}`), value, 'important');
915
- }
916
- };
917
-
918
- const inspect = seed => {
919
- if (!seed || isPrimary(seed)) return;
920
- let element = seed.nodeType === 1 ? seed : seed.parentElement;
921
- let best = null;
922
- while (element && element !== document.body && element !== document.documentElement) {
923
- if (isPrimary(element)) return;
924
- const rect = element.getBoundingClientRect?.();
925
- if (rect && rect.top >= -4 && rect.top <= 52 && rect.left >= -4 && rect.left <= 185 &&
926
- rect.width >= 45 && rect.width <= 190 && rect.height >= 16 && rect.height <= 58 &&
927
- hasShortNexoWattIdentity(element)) {
928
- best = element;
929
- }
930
- if (rect && (rect.width > 220 || rect.height > 75 || rect.left > 200 || rect.top > 70)) break;
931
- element = element.parentElement;
932
- }
933
- if (best) hide(best);
934
- };
935
-
936
- // Known native locations plus a coordinate fallback matching the compact tab.
937
- document.querySelectorAll([
938
- '.MuiDrawer-paper a[href*="#easy"]',
939
- '.MuiSwipeableDrawer-paper a[href*="#easy"]',
940
- '.MuiAppBar-root a[href*="#easy"]',
941
- '.MuiToolbar-root a[href*="#easy"]',
942
- 'img[alt*="NexoWatt" i]',
943
- 'img[src*="nexowatt" i]',
944
- ].join(',')).forEach(inspect);
945
- [[8, 18], [45, 22], [90, 22], [135, 22], [80, 36]].forEach(([x, y]) => {
946
- document.elementsFromPoint?.(x, y).forEach(inspect);
947
- });
948
- });
949
-
950
884
  const patchShell = () => safe(() => {
951
885
  const hasApp = !!document.getElementById('app-paper');
952
886
  const login = isLoginView();
@@ -962,8 +896,7 @@
962
896
  toolbar.classList.add('eos-top-toolbar');
963
897
  ensureBrandBadge(toolbar);
964
898
  }
965
- document.querySelectorAll('.MuiDrawer-paper, .MuiSwipeableDrawer-paper').forEach(patchDrawerHeader);
966
- removeSmallTopLeftNativeNexoWattTab();
899
+ patchDrawerHeader(document.querySelector('.MuiDrawer-paper'));
967
900
  hideNativeLogoutNav();
968
901
  releaseNotificationControls();
969
902
  ensurePopupCompatibility();
@@ -1568,14 +1501,9 @@
1568
1501
  };
1569
1502
 
1570
1503
  const installObserver = () => safe(() => {
1571
- const observer = new MutationObserver(mutations => {
1504
+ if (state.unsubscribeDom) return;
1505
+ const onMutations = mutations => {
1572
1506
  for (const mutation of mutations) {
1573
- if (mutation.type === 'characterData') {
1574
- if (isHighLoadAdminSurface() && isInsideAppPaper(mutation.target?.parentElement)) continue;
1575
- if (isAdapterConfigSurface() && mutation.target?.parentElement?.closest?.('#app-paper')) patchMojibakeTextNode(mutation.target);
1576
- else patchTextNode(mutation.target);
1577
- continue;
1578
- }
1579
1507
  if (mutation.type !== 'childList') continue;
1580
1508
  mutation.addedNodes.forEach(node => {
1581
1509
  if (!node) return;
@@ -1589,14 +1517,9 @@
1589
1517
  });
1590
1518
  }
1591
1519
  if (state.pendingScopes.size) scheduleScopePatch();
1592
- });
1593
- observer.observe(document.documentElement, {
1594
- subtree: true,
1595
- childList: true,
1596
- // v57: characterData floods large ObjectBrowser tables. Text fixes are
1597
- // applied by scheduled scope/full patches instead.
1598
- characterData: false,
1599
- });
1520
+ };
1521
+ const coordinator = window.NEXOWATT_EOS_DOM_COORDINATOR;
1522
+ if (coordinator?.subscribe) state.unsubscribeDom = coordinator.subscribe(onMutations);
1600
1523
  });
1601
1524
 
1602
1525
  forceLoginGlobals();
@@ -1605,13 +1528,13 @@
1605
1528
  fullPatch();
1606
1529
  fetchSecurityPolicy();
1607
1530
  installObserver();
1608
- [350, 1500].forEach(scheduleFullPatch);
1531
+ [450].forEach(scheduleFullPatch);
1609
1532
  }, { once: true });
1610
1533
  } else {
1611
1534
  fullPatch();
1612
1535
  fetchSecurityPolicy();
1613
1536
  installObserver();
1614
- [350, 1500].forEach(scheduleFullPatch);
1537
+ [450].forEach(scheduleFullPatch);
1615
1538
  }
1616
1539
  window.addEventListener('load', () => scheduleFullPatch(0), { once: true });
1617
1540
  window.addEventListener('hashchange', () => scheduleFullPatch(0));
@@ -1,63 +1,7 @@
1
1
  (() => {
2
2
  'use strict';
3
-
4
- const QUIET_VERSION = 'v65-native-drawer-header-hard-remove';
5
- window.NEXOWATT_EOS_CONSOLE_QUIET_VERSION = QUIET_VERSION;
6
-
7
- const original = window.__NEXOWATT_EOS_CONSOLE_ORIGINAL__ || {
8
- log: console.log.bind(console),
9
- info: console.info.bind(console),
10
- warn: console.warn.bind(console),
11
- debug: console.debug.bind(console),
12
- error: console.error.bind(console),
13
- };
14
- window.__NEXOWATT_EOS_CONSOLE_ORIGINAL__ = original;
15
-
16
- const toText = args => {
17
- // v60: avoid JSON.stringify on large admin objects. The previous quiet filter
18
- // could itself become visible in Chrome as requestIdleCallback/message violations.
19
- const out = [];
20
- const list = Array.from(args || []).slice(0, 4);
21
- for (const value of list) {
22
- if (typeof value === 'string') out.push(value);
23
- else if (value && typeof value.message === 'string') out.push(value.message);
24
- else if (value && typeof value.name === 'string') out.push(value.name);
25
- else if (value != null && (typeof value === 'number' || typeof value === 'boolean')) out.push(String(value));
26
- }
27
- return out.join(' ').replace(/%c/g, '').replace(/\s+/g, ' ').trim();
28
- };
29
-
30
- const noisy = args => {
31
- const text = toText(args);
32
- if (!text) return false;
33
- return /(?:^|\s)\[ADAPTERS\](?:\s|$)/.test(text)
34
- || /Render because of /.test(text)
35
- || /getInstances:\s*\d+/.test(text)
36
- || /Translate:\s*/.test(text)
37
- || /Stored version:\s*/.test(text)
38
- || /Please (?:add to|modify) "system\.(?:adapter\.|host\.[^.]+\.adapter\.)/.test(text)
39
- || /Please (?:add to|modify) "system\.host\.[^.]+\.adapter\./.test(text);
40
- };
41
-
42
- const install = () => {
43
- ['log', 'info', 'warn', 'debug'].forEach(level => {
44
- if (console[level]?.__nexowattQuietVersion === QUIET_VERSION) return;
45
- const wrapped = (...args) => {
46
- if (noisy(args)) return;
47
- original[level](...args);
48
- };
49
- Object.defineProperty(wrapped, '__nexowattQuietVersion', { value: QUIET_VERSION });
50
- console[level] = wrapped;
51
- });
52
- };
53
-
54
- install();
55
- if (document.readyState === 'loading') {
56
- document.addEventListener('DOMContentLoaded', install, { once: true });
57
- } else {
58
- queueMicrotask(install);
59
- }
60
- window.addEventListener('load', install, { once: true });
61
-
62
- window.NEXOWATT_EOS_RESTORE_CONSOLE = () => Object.assign(console, original);
3
+ window.NEXOWATT_EOS_CONSOLE_QUIET_VERSION = 'v70-disabled-for-stability';
4
+ // Diagnostic output is intentionally left untouched in the stability release.
5
+ // Suppressing broad console prefixes hid important performance and runtime clues.
6
+ window.NEXOWATT_EOS_RESTORE_CONSOLE = () => undefined;
63
7
  })();
@@ -1,7 +1,7 @@
1
1
  (() => {
2
2
  'use strict';
3
3
 
4
- window.NEXOWATT_EOS_OBJECTS_STATE_TOOLS_VERSION = 'v65-native-drawer-header-hard-remove';
4
+ window.NEXOWATT_EOS_OBJECTS_STATE_TOOLS_VERSION = 'v70-stability';
5
5
  window.NEXOWATT_EOS_OBJECTS_STATE_TOOLS_MODE = 'passive-native-objectbrowser';
6
6
 
7
7
  // Keep this file intentionally passive. The datapoints page must use the
@@ -1,6 +1,6 @@
1
1
  (() => {
2
2
  'use strict';
3
- window.NEXOWATT_EOS_PERFORMANCE_GUARD_VERSION = 'v65-native-drawer-header-hard-remove-noop';
3
+ window.NEXOWATT_EOS_PERFORMANCE_GUARD_VERSION = 'v70-stability';
4
4
  // No-op compatibility shim. Older v53/v52 files installed aggressive DOM
5
5
  // observers here. Keeping the filename neutralizes stale ioBroker file-cache
6
6
  // references without touching ObjectBrowser, tooltips, clicks or state writes.