iobroker.eos-admin 7.9.31 → 7.9.32

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.
@@ -3138,3 +3138,97 @@ html.eos-app .eos-native-logout-hidden * {
3138
3138
  html.eos-app .eos-native-drawer-header button,
3139
3139
  html.eos-app .eos-native-drawer-header .MuiIconButton-root { width: 38px !important; height: 38px !important; min-width: 38px !important; min-height: 38px !important; }
3140
3140
  }
3141
+
3142
+
3143
+ /* === NexoWatt EOS v32: keep arrow button, remove empty left tile ============
3144
+ The previous patch hid the native arrow together with the decorative tile on
3145
+ some render paths. This patch removes only the empty native tile and creates
3146
+ one independent compact-toggle button, positioned clearly left of the menu.
3147
+ The navigation still has two states only: normal and compact. It never fully
3148
+ disappears. */
3149
+ :root { --eos-nav-toggle-slot: 78px; }
3150
+ html.eos-app .MuiDrawer-paper,
3151
+ html.eos-app .eos-drawer,
3152
+ html.eos-app.eos-nav-compact .MuiDrawer-paper,
3153
+ html.eos-app.eos-nav-compact .eos-drawer {
3154
+ padding-left: var(--eos-nav-toggle-slot) !important;
3155
+ transform: none !important;
3156
+ visibility: visible !important;
3157
+ opacity: 1 !important;
3158
+ }
3159
+
3160
+ /* Hide the decorative native tile only. The real button is injected below. */
3161
+ html.eos-app .eos-native-drawer-header,
3162
+ html.eos-app .eos-nav-toggle-shell {
3163
+ display: none !important;
3164
+ visibility: hidden !important;
3165
+ opacity: 0 !important;
3166
+ pointer-events: none !important;
3167
+ width: 0 !important;
3168
+ min-width: 0 !important;
3169
+ max-width: 0 !important;
3170
+ height: 0 !important;
3171
+ min-height: 0 !important;
3172
+ max-height: 0 !important;
3173
+ padding: 0 !important;
3174
+ margin: 0 !important;
3175
+ border: 0 !important;
3176
+ box-shadow: none !important;
3177
+ background: transparent !important;
3178
+ overflow: hidden !important;
3179
+ }
3180
+
3181
+ html.eos-app .eos-standalone-nav-toggle {
3182
+ position: fixed !important;
3183
+ left: 24px !important;
3184
+ top: calc(var(--eos-shell-top) + var(--eos-header-height) + var(--eos-nav-gap) + 14px) !important;
3185
+ z-index: 2500 !important;
3186
+ width: 44px !important;
3187
+ height: 44px !important;
3188
+ min-width: 44px !important;
3189
+ min-height: 44px !important;
3190
+ display: grid !important;
3191
+ place-items: center !important;
3192
+ border-radius: 16px !important;
3193
+ border: 1px solid rgba(110, 255, 211, 0.65) !important;
3194
+ background: radial-gradient(circle at 50% 50%, rgba(0,255,136,.22), rgba(0,0,0,.92) 74%) !important;
3195
+ color: #f4fffb !important;
3196
+ box-shadow: 0 0 16px rgba(0,255,136,.28), inset 0 0 12px rgba(0,255,136,.12) !important;
3197
+ cursor: pointer !important;
3198
+ outline: none !important;
3199
+ padding: 0 !important;
3200
+ margin: 0 !important;
3201
+ appearance: none !important;
3202
+ -webkit-appearance: none !important;
3203
+ }
3204
+ html.eos-app .eos-standalone-nav-toggle:hover,
3205
+ html.eos-app .eos-standalone-nav-toggle:focus-visible {
3206
+ border-color: rgba(0, 255, 136, .95) !important;
3207
+ box-shadow: 0 0 22px rgba(0,255,136,.42), inset 0 0 16px rgba(0,255,136,.18) !important;
3208
+ transform: translateY(-1px) !important;
3209
+ }
3210
+ html.eos-app .eos-standalone-nav-toggle svg {
3211
+ width: 22px !important;
3212
+ height: 22px !important;
3213
+ display: block !important;
3214
+ transition: transform .16s ease !important;
3215
+ }
3216
+ html.eos-app.eos-nav-compact .eos-standalone-nav-toggle svg {
3217
+ transform: rotate(180deg) !important;
3218
+ }
3219
+ html.eos-login .eos-standalone-nav-toggle,
3220
+ html:not(.eos-app) .eos-standalone-nav-toggle {
3221
+ display: none !important;
3222
+ }
3223
+ @media (max-width: 720px) {
3224
+ :root { --eos-nav-toggle-slot: 66px; }
3225
+ html.eos-app .eos-standalone-nav-toggle {
3226
+ left: 14px !important;
3227
+ top: calc(var(--eos-shell-top) + var(--eos-header-height) + var(--eos-nav-gap) + 10px) !important;
3228
+ width: 40px !important;
3229
+ height: 40px !important;
3230
+ min-width: 40px !important;
3231
+ min-height: 40px !important;
3232
+ border-radius: 14px !important;
3233
+ }
3234
+ }
@@ -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=31" />
34
+ <link rel="stylesheet" href="./css/eos-branding.css?v=32" />
35
35
  <link
36
36
  rel="manifest"
37
37
  href="manifest.json"
@@ -154,9 +154,9 @@
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=31"></script>
158
- <script defer src="./js/eos-security-ui.js?v=31"></script>
159
- <script defer src="./js/eos-assistant.js?v=31"></script>
157
+ <script defer src="./js/eos-branding.js?v=32"></script>
158
+ <script defer src="./js/eos-security-ui.js?v=32"></script>
159
+ <script defer src="./js/eos-assistant.js?v=32"></script>
160
160
  </head>
161
161
  <body>
162
162
  <noscript>You need to enable JavaScript to run this app.</noscript>
@@ -1,7 +1,7 @@
1
1
  (() => {
2
2
  'use strict';
3
3
 
4
- window.NEXOWATT_EOS_UI_VERSION = 'v31-ui-cleanup-ai-ready';
4
+ window.NEXOWATT_EOS_UI_VERSION = 'v32-nav-toggle-tile-fix';
5
5
 
6
6
  const BRAND = 'NexoWatt EOS';
7
7
  const EOS_MEANING = 'Energy Operation System';
@@ -1045,6 +1045,44 @@
1045
1045
  }, true);
1046
1046
  });
1047
1047
 
1048
+
1049
+ const ensureStandaloneNavToggle = () => safe(() => {
1050
+ const html = document.documentElement;
1051
+ if (!html.classList.contains('eos-app') || html.classList.contains('eos-login')) {
1052
+ document.getElementById('eos-standalone-nav-toggle')?.remove();
1053
+ return;
1054
+ }
1055
+ let button = document.getElementById('eos-standalone-nav-toggle');
1056
+ if (!button) {
1057
+ button = document.createElement('button');
1058
+ button.id = 'eos-standalone-nav-toggle';
1059
+ button.type = 'button';
1060
+ button.className = 'eos-standalone-nav-toggle';
1061
+ button.innerHTML = '<svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="M14.8 5.4 8.2 12l6.6 6.6" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"/></svg>';
1062
+ const toggle = event => {
1063
+ event.preventDefault();
1064
+ event.stopPropagation();
1065
+ event.stopImmediatePropagation?.();
1066
+ const compact = !document.documentElement.classList.contains('eos-nav-compact');
1067
+ document.documentElement.classList.toggle('eos-nav-compact', compact);
1068
+ safe(() => localStorage.setItem('nexowatt:eosNavCompact', compact ? '1' : '0'));
1069
+ button.setAttribute('aria-pressed', compact ? 'true' : 'false');
1070
+ button.setAttribute('title', compact ? 'Navigation normal anzeigen' : 'Navigation kompakt anzeigen');
1071
+ button.setAttribute('aria-label', compact ? 'Navigation normal anzeigen' : 'Navigation kompakt anzeigen');
1072
+ };
1073
+ button.addEventListener('click', toggle, true);
1074
+ button.addEventListener('keydown', event => {
1075
+ if (event.key === 'Enter' || event.key === ' ') toggle(event);
1076
+ }, true);
1077
+ document.body.appendChild(button);
1078
+ }
1079
+ const compact = document.documentElement.classList.contains('eos-nav-compact') || safe(() => localStorage.getItem('nexowatt:eosNavCompact') === '1');
1080
+ document.documentElement.classList.toggle('eos-nav-compact', !!compact);
1081
+ button.setAttribute('aria-pressed', compact ? 'true' : 'false');
1082
+ button.setAttribute('title', compact ? 'Navigation normal anzeigen' : 'Navigation kompakt anzeigen');
1083
+ button.setAttribute('aria-label', compact ? 'Navigation normal anzeigen' : 'Navigation kompakt anzeigen');
1084
+ });
1085
+
1048
1086
  const patchDocumentMeta = () => safe(() => {
1049
1087
  document.title = BRAND_LONG;
1050
1088
  const theme = document.querySelector('meta[name="theme-color"]');
@@ -1063,6 +1101,7 @@
1063
1101
  patchLogin();
1064
1102
  patchShell();
1065
1103
  applyNavCompactPreference();
1104
+ ensureStandaloneNavToggle();
1066
1105
  installAssistDelegatedClick();
1067
1106
  ensureEosAssist();
1068
1107
  ensureRightsHelper();
@@ -1083,6 +1122,7 @@
1083
1122
  patchLogin();
1084
1123
  patchShell();
1085
1124
  applyNavCompactPreference();
1125
+ ensureStandaloneNavToggle();
1086
1126
  installAssistDelegatedClick();
1087
1127
  ensureEosAssist();
1088
1128
  ensureRightsHelper();
package/io-package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "common": {
3
3
  "name": "eos-admin",
4
- "version": "7.9.31",
4
+ "version": "7.9.32",
5
5
  "titleLang": {
6
6
  "en": "NexoWatt EOS Admin",
7
7
  "de": "NexoWatt EOS Admin",
@@ -161,6 +161,10 @@
161
161
  "pl": "Rozszerzony plik konfiguracyjny JSON do adaptera fregata",
162
162
  "uk": "Розширений налаштування JSON для адаптера фригату",
163
163
  "zh-cn": "JSON 护卫舰适配器扩展配置"
164
+ },
165
+ "7.9.32": {
166
+ "en": "Fixed the EOS navigation compact toggle: the decorative left tile was removed while the arrow button remains visible and usable.",
167
+ "de": "EOS Navigationsumschalter korrigiert: Die dekorative linke Kachel wurde entfernt, der Pfeilbutton bleibt sichtbar und nutzbar."
164
168
  }
165
169
  },
166
170
  "desc": {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "iobroker.eos-admin",
3
3
  "description": "NexoWatt EOS Admin standalone interface for Energy Operation System",
4
- "version": "7.9.31",
4
+ "version": "7.9.32",
5
5
  "contributors": [
6
6
  "bluefox <dogafox@gmail.com>",
7
7
  "apollon77",